java 接口调用问题

{
    "batchNo": "XX_20170120113655",
    "detail": [
        {
            "contractCode": "2017012001",
            "repayAmt": 6600,
            "repayType": "REPAY"
        },
        {
            "contractCode": "2017012002",
            "repayAmt": 2000,
            "repayType": "REPAY"
        },
        {
            "externalLoanCode": "2017012003",
            "repayAmt": 390000,
            "repayType": "ADV_CLEAR"
        },
        {
            "contractCode": "2017012004",
            "repayAmt": 6000,
            "repayType": "REPAY"
        }
    ]
}


上述json是要在调用接口的时候传入值进行转换的,怎样才能转换成这个格式?其中detail是有一个实体类对应的
阅读 2.9k
3 个回答

使用fastjson,jackjson等工具也是可能很简单解决这问题
下面是我的做法,如果大家觉得不好请评论一下。
建一个Batch类,里面有字段batchNo,List<Detail> detail;

public class Batch{

    private String batchNo;
    private List<Detail> detail;
    
    //下面省略Get和Set方法……
}

public class Detail{
    private String contractCode;
    private int repayAmt;
    private String  repayType;
    
        //下面省略Get和Set方法……
}

import org.codehaus.jackson.*; //这里我随便写的,反正就是用JackJson

public class BeanToJson{

    public static void main(String[] args){

        Batch  batch = new Batch();
        batch.setBatchNo("XX_20170120113655");
        Detail detailA = new Detail();
        Detail detailB = new Detail();
    
        detailA.setContractCode("2017012001");
        detailA.setRepayAmt(6600);
        detailA.setRepayType("REPAY");
    
        detailB.setContractCode("2017012002");
        detailB.setRepayAmt(7600);
        detailB.setRepayType("REPAY");
    
        List<Detail> details = new ArrayList<Detail>();
        details.add(detailA);
        details.add(detailB);
        
        batch.setDetail(details);
    
        //上面都是一些设置数据的东西,下面才是要说的

        ObejctMapper mapper = new ObjectMapper();
    
        String s = mapper.writeValueAsString(batch);
    
        // 现在 s 就是楼主想要的格式了。代码纯手打,不保证没有问题,想表达的是方法!
    }
}

如果你经常要把Bean变化成Json,这个方法简单,明了。

ArrayList<Map<String,String>> detail = new ArrayList<Map<String,String>>();
一个list中包装一个Map

fastjson,你值得拥有。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题