JSONObject.toJSONString()输出null
EmineWang 人气:0JSONObject.toJSONString()输出null
问题:fastjson的api种,jsonObject.toJsonString(),当值为null时,没打印出来
代码
JSONObject jsonObject = new JSONObject(); jsonObject.put("id",null); jsonObject.put("class","12"); jsonObject.put("name",""); // 使用默认序列化方式打印 System.out.println(jsonObject.toJSONString()); // 使用指定序列化方式 System.out.println(jsonObject.toJSONString(jsonObject,SerializerFeature.WriteMapNullValue));
输出
{"name":"","class":"12"}
{"id":null,"name":"","class":"12"}
可以发现,使用默认方式时,id没有打印null,指定序列化SerializerFeature.WriteMapNullValue,会打印null
可以看到
看下SerializerFeature属性
名称 | 含义 |
---|---|
QuoteFieldNames | 输出key时是否使用双引号,默认为true |
UseSingleQuotes | 使用单引号而不是双引号,默认为false |
WriteMapNullValue | 是否输出值为null的字段,默认为false |
WriteEnumUsingToString | Enum输出name()或者original,默认为false |
SortField | 按字段名称排序后输出。默认为false |
WriteTabAsSpecial | 把\t做转义输出,默认为false |
PrettyForma | 结果是否格式化,默认为false |
WriteClassName | 序列化时写入类型信息,默认为false。反序列化是需用到 |
不要盲目的使用JSONObject.toJSONString
JSONObject.toJSONString会默认执行你这个要解析的类中的所有get方法,很容易出现空指针异常,而应该换为gson.toJson()这个方法
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容