fastjson将对象转换为字符串时--null未输出的解决方法
今天笔者将一个map转换为json字符串输出时,当值为null,此时值被自动忽略
那么我们有没有方法将null输出呢?下文笔者将一一道来,如下所示
例
那么我们有没有方法将null输出呢?下文笔者将一一道来,如下所示
例
Map < String , Object > jsonMap = new HashMap< String , Object>();
jsonMap.put("a",888);
jsonMap.put("b","");
jsonMap.put("c",null);
jsonMap.put("d","java265.com");
String str = JSONObject.toJSONString(jsonMap);
System.out.println(str);
//输出以下信息:{"a":1,"b":"",d:"java265.com"}
//以上输出的字符串中null为空的key被自动忽略了
//那么我们有没有办法将null的key,也输出呢?
我们只需在toJSONString时
加入相应的参数
如:
JSONObject.toJSONString(Object object, SerializerFeature... features)
SerializerFeature有用的一些枚举值
QuoteFieldNames———-输出key时是否使用双引号,默认为true
WriteMapNullValue——–是否输出值为null的字段,默认为false
WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
WriteNulllistAsEmpty—–List字段如果为null,输出为[],而非null
WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null
WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null
输出null值JSON的写法
Map < String , Object > jsonMap = new HashMap< String , Object>();
jsonMap.put("a",1);
jsonMap.put("b","");
jsonMap.put("c",null);
jsonMap.put("d","java265.com");
String str = JSONObject.toJSONString(jsonMap,SerializerFeature.WriteMapNullValue);
System.out.println(str);
//输出结果:{"a":1,"b":"","c":null,"d":"java265.com"}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


