依赖:
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
1.将对象转换成为字符串
String str = JSON.toJSONString(infoDo);
2.将字符串转换成为对象
InfoDo infoDo = JSON.parseObject(strInfoDo, InfoDo.class);
3.将集合转换成为字符串
List<String> list= new ArrayList<>();
list.add("123");
list.add("abc");
String conditionJsonString = JSON.toJSONString(list);
System.out.println(conditionJsonString);
["123","abc"]
字符串数组装成集合
String fr = datum.getFr();//["2020-01-01","2020-12-15"]
List<String> parse = (List<String>) JSONObject.parse(fr);
4.将字符串转换成为对象集合
List<User> userList = JSON.parseArray(userStr, User.class);
5.String
转JsonObject
对象
JSONObject jsonObject1 =JSONObject.parseObject(String)
6.从JSONObject
获取数据
String s=(String)jsonObject.get("data").toString();
7.null
值在转JSONObject
时丢失的问题
String s="{\"data\":[{\"xlh\":\"1\",\"gxsj\":null,\"zt\":null,\"xm\":null,\"cym\":null,\"xb\":null,\"gmsfhm\":null,\"hb\":null,\"hh\":null,\"yhzgx\":null,\"mz\":null,\"csrq\":null,\"csd\":null,\"csdssx\":null,\"gj\":null,\"jgssx\":null,\"xz\":null,\"whcd\":null,\"hyzk\":null,\"zy\":null,\"xx\":null,\"sg\":null,\"zjxy\":null,\"fwcs\":null,\"sqjwhdm\":null,\"hsqlb\":null,\"hylbd\":null,\"hdlbsgjdq\":null,\"hdqlbsssxq\":null,\"hdqlbsxz\":null,\"qcrq\":null,\"qczxlb\":null,\"ssxq\":null,\"pcsdm\":null,\"pcsjgmc\":null,\"#alibaba_rds_row_id#\":\"1024\"}],\"database\":\"datartc\",\"es\":1592374276000,\"id\":5,\"isDdl\":false,\"mysqlType\":{\"xlh\":\"decimal(12,0)\",\"gxsj\":\"varchar(32)\",\"zt\":\"varchar(4)\",\"xm\":\"varchar(128)\",\"cym\":\"varchar(128)\",\"xb\":\"varchar(4)\",\"gmsfhm\":\"varchar(32)\",\"hb\":\"varchar(32)\",\"hh\":\"varchar(200)\",\"yhzgx\":\"varchar(200)\",\"mz\":\"varchar(20)\",\"csrq\":\"varchar(32)\",\"csd\":\"varchar(200)\",\"csdssx\":\"varchar(200)\",\"gj\":\"varchar(10)\",\"jgssx\":\"varchar(200)\",\"xz\":\"varchar(300)\",\"whcd\":\"varchar(10)\",\"hyzk\":\"varchar(10)\",\"zy\":\"varchar(10)\",\"xx\":\"varchar(10)\",\"sg\":\"varchar(20)\",\"zjxy\":\"varchar(10)\",\"fwcs\":\"varchar(10)\",\"sqjwhdm\":\"varchar(32)\",\"hsqlb\":\"varchar(32)\",\"hylbd\":\"varchar(300)\",\"hdlbsgjdq\":\"varchar(200)\",\"hdqlbsssxq\":\"varchar(200)\",\"hdqlbsxz\":\"varchar(300)\",\"qcrq\":\"varchar(32)\",\"qczxlb\":\"varchar(20)\",\"ssxq\":\"varchar(200)\",\"pcsdm\":\"varchar(32)\",\"pcsjgmc\":\"varchar(200)\",\"#alibaba_rds_row_id#\":\"bigint\"},\"old\":[{\"xlh\":\"2\"}],\"pkNames\":[\"#alibaba_rds_row_id#\"],\"sql\":\"\",\"sqlType\":{\"xlh\":3,\"gxsj\":12,\"zt\":12,\"xm\":12,\"cym\":12,\"xb\":12,\"gmsfhm\":12,\"hb\":12,\"hh\":12,\"yhzgx\":12,\"mz\":12,\"csrq\":12,\"csd\":12,\"csdssx\":12,\"gj\":12,\"jgssx\":12,\"xz\":12,\"whcd\":12,\"hyzk\":12,\"zy\":12,\"xx\":12,\"sg\":12,\"zjxy\":12,\"fwcs\":12,\"sqjwhdm\":12,\"hsqlb\":12,\"hylbd\":12,\"hdlbsgjdq\":12,\"hdqlbsssxq\":12,\"hdqlbsxz\":12,\"qcrq\":12,\"qczxlb\":12,\"ssxq\":12,\"pcsdm\":12,\"pcsjgmc\":12,\"#alibaba_rds_row_id#\":-5},\"table\":\"ods_info_hjxx\",\"ts\":1592374276629,\"type\":\"UPDATE\"}";
JSONObject jsonObject =JSONObject.parseObject(s);
String s1 = JSONObject.toJSONString(jsonObject.get("data"), SerializerFeature.WriteMapNullValue);
System.out.println(s1);
8.Object对象的json串,转成具体的对象
Object value = record.value();
String s = JSON.toJSONString(JSON.parse(value.toString()));
AIDateDTO aiDateDTO = JSON.parseObject(s, AIDateDTO.class);
// Object的数据本来就是json串
// Object强转String
String s = (String) record.value();
// String再转为对应的对象
DeviceStatusReportCallbackDTO deviceStatusReportCallbackDTO = JSON.parseObject(s, DeviceStatusReportCallbackDTO.class);
9、json过滤某些字段
public static String filterFieldsJson(Object src, Class<?> clazz, String... args) {
SimplePropertyPreFilter filter = new SimplePropertyPreFilter(clazz);
Set<String> excludes = filter.getExcludes();
excludes.addAll(Arrays.asList(args));
return JSON.toJSONString(src, filter);
}
String s3 = filterFieldsJson(videoVO, VideoVO.class, "equipmentId", "equipmentName", "equipState");