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.annotation.JSONField;在类的属性上加
最后就是格式问题,我直接用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的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 小米 android 8,小米华为们谁最
- 下一篇: LFW阅读笔记