欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

List<实体>转json

发布时间:2023/12/20 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 List<实体>转json 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

对方要求的结果格式
{ "Sity": [{ "s_id": "00369a642618667dc1c6d", "brq": "2021-01-01", "bzr": "张三", "Files": [{ "id": "01c3d39fbd43d8aea0c246", "sqy_id": "003577ca642618667dcc66d", "zzh": "91340100628E(2-3)", "create": "2020-07-08" }], "Shenheinfo": [{ "shehr": "张三", "shdw": "张三" }] }] }
我对此创建了三个实体,get/set省略了
public class Sity{ private String s_id; private String brq; private String bzr; private List<Files> Files ; private List<Shenheinfo> Shenheinfo ;}

public class Files{ private String id; private String sqy_id; private String zzh; private String create;}

public class Shenheinfo{ private String shehr; private String shdw;}

中间取数据过程省略,最后得到的数据结果List<Sity> SityList,然后用

import com.alibaba.fastjson.JSON;String res = JSON.toJSONString(SityList);

执行后得到字符串发现,有转义字符\,如果属性没有值是不会被转出来的,属性首字母还被转成小写了。
属性没有值是不会被转出来解决方法:

import com.alibaba.fastjson.serializer.SerializerFeature;String res = JSON.toJSONString(SityList, SerializerFeature.WriteMapNullValue);

属性首字母还被转成小写解决方法:
使用import com.alibaba.fastjson.annotation.JSONField;在类的属性上加

public class Sity {@JSONField(name="你想要的名字") private List<Shenheinfo> Shenheinfo ;

最后就是格式问题,我直接用List转json肯定不行,最外围没有Map的{},于是我先把List放进Map,Map转字JSON字符串,JSON字符串再转Map,这样就得到了对方想要的格式

Map<String, List<Sity> mapRes=new HashMap();mapRes.put("SgqyEnity",SityList);String re = JSON.toJSONString(mapRes, SerializerFeature.WriteMapNullValue);HashMap hashMap = JSON.parseObject(re, HashMap.class);

其实List放进Map就行了,Map转字JSON字符串,JSON字符串再转Map,不需要的

总结

以上是生活随笔为你收集整理的List<实体>转json的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。