JSON的正确格式及JSON与实体类相互转换

json是一种与语言无关的数据交换的格式,使用Json的格式与解析方便的可以表示一个对象信息,json有两种格式:①对象格式:{“key1”:obj,“key2”:obj,“key3”:obj…}、②数组/集合格式:[obj,obj,obj…]。

1.对象格式

{
    "birthday": "2019-02-03",
    "lastUpdate": "2019-02-03 10:08:02"
    "code": 200,
    "msg": "新增成功",
    "data": null
}

注意key与String类型value都需要加双引号

2.数组/集合格式

["张珊","李四","王五","小麻子"]

3.实体、JSON互转

                  /**JSON字符串->实体类**/
//单实体
R resultR = JSONObject.parseObject(jsonString,R.class);
//json数组
Object businessDemand = getData("businessDemand");
String s = JSONArray.toJSONString(businessDemand);
List<BusinessDemand> businessDemandList = JSONArray.parseArray(s, BusinessDemand.class);


                  /**实体转json字符串**/
//jeckson方式:
R resultR = (R)pjp.proceed();
String resultSerializble = new ObjectMapper().writeValueAsString(resultR);
//fastJson方式:
String s = JSON.toJSONString(resultR);

4.案例:

    @Test
    @DisplayName("项目立项导出测试")
    void testProjectItemExport() throws IOException, XmlException {
        ItemExportVO itemExportVO = ItemExportVO.builder()
                .build();
        String s = "{\"plProjectMainId\":\"1597493182549983232\",\"plProjectAttribute\":\"1\",\"plProjectName\":\"小陶测试质量计划全推\",\"plProjectNo\":\"adsfdsgd-23543\"}";
        JSONObject jsonObject = JSONObject.parseObject(s);
        String toJSONString = JSON.toJSONString(jsonObject);
        itemExportVO = JSON.parseObject(toJSONString, ItemExportVO.class);
        R result = itemQuery.projectItemExport(itemExportVO,response);
        assertEquals(200,result.getCode(),"testProjectItemExport异常");
    }

    @Test
    @DisplayName("项目立项列表导出测试")
    void projectItemListExport() throws IOException {
        String s = "[\"1584868462696595456\",\"1585095770044891136\",\"1585803532714377216\"]";
        List<String> itemListIds = JSON.parseArray(s, String.class);
        R result = itemQuery.projectItemListExport(itemListIds,response);
        assertEquals(200,result.getCode(),"projectItemListExport异常");
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值