fastjson 对象和字符串的相互转换

依赖:

		<!--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.StringJsonObject对象

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");
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值