nutz使用技巧

2 篇文章 0 订阅

JSON字符串和对象封装类互转

JSON 字符串和Map互转

JSON字符串转Map对象通用方法

Json.fromJson(Class type, CharSequence cs)

    String json = "{\"uuid\": \"92955447-b781-42f6-acc3-1ed774c3acfb\",\"request\": \"{\\\"data\\\":[{\\\"device_id\\\":\\\"plate-aaa4-4cce-b487-0c56d7dfa03e\\\",\\\"status\\\":\\\"OK\\\",\\\"status_str\\\":\\\"正常\\\"},{\\\"device_id\\\":\\\"ahead-7a0d-4aef-9da8-8f8a807a900f\\\",\\\"status\\\":\\\"OK\\\",\\\"status_str\\\":\\\"正常\\\"},{\\\"device_id\\\":\\\"left-9667-4266-be34-d481032129fa\\\",\\\"status\\\":\\\"OK\\\",\\\"status_str\\\":\\\"正常\\\"},{\\\"device_id\\\":\\\"right-c27c-415d-bcb8-9ceb1e53d678\\\",\\\"status\\\":\\\"OK\\\",\\\"status_str\\\":\\\"正常\\\"},{\\\"device_id\\\":\\\"behind-88be-4424-a52a-c4ed74951448\\\",\\\"status\\\":\\\"OK\\\",\\\"status_str\\\":\\\"正常\\\"}],\\\"device_class\\\":\\\"CAMERA\\\",\\\"type\\\":\\\"STATUS_REPORT\\\",\\\"uuid\\\":null}\"}";
    System.out.println(json);
    NutMap deviceStatusMap = Json.fromJson(NutMap.class, json);

对象转JSON 字符串时指定字符串格式

设置JSON字符串紧凑(不换行),不忽略null值
    JsonFormat jsonFormat= JsonFormat.tidy();
    String jsonStr = Json.toJson(requestMap, jsonFormat);
    System.out.println(jsonStr );
设置JSON字符串紧凑(不换行),不忽略null值,同时将null值替换成空字符串
    String json = "{\"uuid\": \"92955447-b781-42f6-acc3-1ed774c3acfb\",\"request\": \"{\\\"data\\\":[{\\\"device_id\\\":\\\"plate-aaa4-4cce-b487-0c56d7dfa03e\\\",\\\"status\\\":\\\"OK\\\",\\\"status_str\\\":\\\"正常\\\"},{\\\"device_id\\\":\\\"ahead-7a0d-4aef-9da8-8f8a807a900f\\\",\\\"status\\\":\\\"OK\\\",\\\"status_str\\\":\\\"正常\\\"},{\\\"device_id\\\":\\\"left-9667-4266-be34-d481032129fa\\\",\\\"status\\\":\\\"OK\\\",\\\"status_str\\\":\\\"正常\\\"},{\\\"device_id\\\":\\\"right-c27c-415d-bcb8-9ceb1e53d678\\\",\\\"status\\\":\\\"OK\\\",\\\"status_str\\\":\\\"正常\\\"},{\\\"device_id\\\":\\\"behind-88be-4424-a52a-c4ed74951448\\\",\\\"status\\\":\\\"OK\\\",\\\"status_str\\\":\\\"正常\\\"}],\\\"device_class\\\":\\\"CAMERA\\\",\\\"type\\\":\\\"STATUS_REPORT\\\",\\\"uuid\\\":null}\"}";
    System.out.println(json);
    NutMap deviceStatusMap = Json.fromJson(NutMap.class, json);
    NutMap requestMap = deviceStatusMap.getAs("request", NutMap.class);
    JsonFormat jsonFormat= JsonFormat.tidy();
    String jsonStr = Json.toJson(requestMap, jsonFormat);
    System.out.println("isNullAsEmtry--1--"+jsonFormat.isNullAsEmtry());
    jsonFormat.setNullAsEmtry(true);
    System.out.println("isNullAsEmtry--2--"+jsonFormat.isNullAsEmtry());
    System.out.println(jsonStr );

原json中我设置了 request 中的 uuid字段值为null,打印结果如下:

原json----{“uuid”: “92955447-b781-42f6-acc3-1ed774c3acfb”,“request”: “{“data”:[{“device_id”:“plate-aaa4-4cce-b487-0c56d7dfa03e”,“status”:“OK”,“status_str”:“正常”},{“device_id”:“ahead-7a0d-4aef-9da8-8f8a807a900f”,“status”:“OK”,“status_str”:“正常”},{“device_id”:“left-9667-4266-be34-d481032129fa”,“status”:“OK”,“status_str”:“正常”},{“device_id”:“right-c27c-415d-bcb8-9ceb1e53d678”,“status”:“OK”,“status_str”:“正常”},{“device_id”:“behind-88be-4424-a52a-c4ed74951448”,“status”:“OK”,“status_str”:“正常”}],“device_class”:“CAMERA”,“type”:“STATUS_REPORT”,“uuid”:null}”}
isNullAsEmtry–1--false
isNullAsEmtry–2--true
设备状态–requestMap–:{“data”:[{“device_id”:“plate-aaa4-4cce-b487-0c56d7dfa03e”,“status”:“OK”,“status_str”:“正常”}, {“device_id”:“ahead-7a0d-4aef-9da8-8f8a807a900f”,“status”:“OK”,“status_str”:“正常”}, {“device_id”:“left-9667-4266-be34-d481032129fa”,“status”:“OK”,“status_str”:“正常”}, {“device_id”:“right-c27c-415d-bcb8-9ceb1e53d678”,“status”:“OK”,“status_str”:“正常”}, {“device_id”:“behind-88be-4424-a52a-c4ed74951448”,“status”:“OK”,“status_str”:“正常”}],“device_class”:“CAMERA”,“type”:“STATUS_REPORT”,“uuid”:""}

另外:

JsonFormat 中除了 nullAsEmtry 之外,还有 nullListAsEmptynullStringAsEmptynullBooleanAsFalsenullNumberAsZero 等 遇到空值(null)的时候写入字符串的配置,有兴趣的同学可以依次验证

-----------------------------end by 2020-08-10-----------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值