偶然用到fastjson转换json 在前台用js解析竟然某些字段没有,曾经用过gson。联想到是不是相似gson默认将null值不显示了,找了下资料果真如此
直接上代码吧
import java.util.HashMap;import java.util.Map;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.serializer.SerializerFeature;public class Test2 { /** * @param args */ public static void main(String[] args) { /* * QuoteFieldNames———-输出key时是否使用双引號,默觉得true WriteMapNullValue——–是否输出值为null的字段,默觉得false WriteNullNumberAsZero—-数值字段假设为null,输出为0,而非null WriteNullListAsEmpty—–List字段假设为null,输出为[],而非null WriteNullStringAsEmpty—字符类型字段假设为null,输出为”“,而非null WriteNullBooleanAsFalse–Boolean字段假设为null,输出为false,而非null */ Map < String , Object > jsonMap = new HashMap< String , Object>(); jsonMap.put("xyw",1); jsonMap.put("123",""); jsonMap.put("xuyw",null); jsonMap.put("xywa","css"); String str = JSONObject.toJSONString(jsonMap); System.out.println(str); String str2 = JSONObject.toJSONString(jsonMap,SerializerFeature.WriteMapNullValue); System.out.println(str2); }}
输出结果
{"123":"","xyw":1,"xywa":"css"}{"123":"","xuyw":null,"xyw":1,"xywa":"css"}