1.FastJson生成json字符串字段丢失
private String id;
private String pId;
private String name;
private boolean open;
FastJson生成字符串是:{"id":"2","name":"节点1","open":true}
Gson生成字符串是:{"id":"2","pId":"1","name":"节点1","open":true}
原因:get,set方法多半是自动生成的,Fastjson在生成的时候去判断pId有没有对应的get方法是区分了大小写的,所以找不到对应的get方法(getPId())。
解决:不适用第一个单词只有一个小写字母的属性名。
2.FastJson生成json时Null属性丢失
Map < String , Object > jsonMap = new HashMap< String , Object>();
jsonMap.put("a",1);
jsonMap.put("b","");
jsonMap.put("c",null);
jsonMap.put("d","wuzhuti.cn");
String str = JSONObject.toJSONString(jsonMap);
System.out.println(str);
//输出结果:{"a":1,"b":"",d:"wuzhuti.cn"}
解决:JSONObject.toJSONString(Object object, SerializerFeature... features)
Gson转换时null字段丢失
Gson g = new GsonBuilder().serializeNulls().create();