FastJson生成json时,显示Null属性
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"} 从输出结果可以看出,null对应的key已经被过滤掉;这明显不是我们想要的结果,这时我们就需要用到fastjson的SerializerFeature序列化属性 也就是这个方法:JSONObject.toJSONString(Object object,SerializerFeature... features) Fastjson的SerializerFeature序列化属性--来自oschina bfleeee博客 QuoteFieldNames———-输出key时是否使用双引号,默认为true Map < String,"wuzhuti.cn"); String str = JSONObject.toJSONString(jsonMap,SerializerFeature.WriteMapNullValue); System.out.println(str); //输出结果:{"a":1,"c":null,"d":"wuzhuti.cn"} Spring配置FastJson <mvc:annotation-driven> //模型 public class TopicVo implements Serializable { //json数据,空的转换成了null或者0或者空[] { "doubleName": 0,"id": 17,"intName": 0,"listName": [],"longName": 0,"mapName": null,"mapNameWithValue": {},"mapNameWithValue2": { "a": "a" },"name": "好像的","nullName": "" } 完整的选项 package com.alibaba.fastjson.serializer; /** * @author wenshao[szujobs@hotmail.com] */ public enum SerializerFeature { QuoteFieldNames,/** * */ UseSingleQuotes,/** * */ WriteMapNullValue,/** * 用枚举toString()值输出 */ WriteEnumUsingToString,/** * 用枚举name()输出 */ WriteEnumUsingName,/** * */ UseISO8601DateFormat,/** * @since 1.1 */ WriteNullListAsEmpty,/** * @since 1.1 */ WriteNullStringAsEmpty,/** * @since 1.1 */ WriteNullNumberAsZero,/** * @since 1.1 */ WriteNullBooleanAsFalse,/** * @since 1.1 */ SkipTransientField,/** * @since 1.1 */ SortField,/** * @since 1.1.1 */ @Deprecated WriteTabAsSpecial,/** * @since 1.1.2 */ PrettyFormat,/** * @since 1.1.2 */ WriteClassName,/** * @since 1.1.6 */ DisableCircularReferenceDetect,/** * @since 1.1.9 */ WriteSlashAsSpecial,/** * @since 1.1.10 */ BrowserCompatible,/** * @since 1.1.14 */ WriteDateUseDateFormat,/** * @since 1.1.15 */ NotWriteRootClassName,/** * @since 1.1.19 */ DisableCheckSpecialChar,/** * @since 1.1.35 */ BeanToArray,/** * @since 1.1.37 */ WriteNonStringKeyAsString,/** * @since 1.1.42 */ NotWriteDefaultValue,/** * @since 1.2.6 */ BrowserSecure,/** * @since 1.2.7 */ IgnoreNonFieldGetter ; 参考资料:https://wuzhuti.cn/2175.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |