fastJson 对于 Map的features 指定是无效的吧?
比如,我在features 指定了,WriteNullStringAsEmpty,经测试无效,fastjson使用的是最新版本。
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, features);
System.out.println(str);
private static final SerializerFeature[] features = { SerializerFeature.SortField,//排序字段
SerializerFeature.WriteMapNullValue, // 输出空置字段
SerializerFeature.WriteNullListAsEmpty, // list字段如果为null,输出为[],而不是null
SerializerFeature.WriteNullNumberAsZero, // 数值字段如果为null,输出为0,而不是null
SerializerFeature.WriteNullBooleanAsFalse, // Boolean字段如果为null,输出为false,而不是null
SerializerFeature.WriteNullStringAsEmpty // 字符类型字段如果为null,输出为"",而不是null
};
SerializerFeature.WriteMapNullValue
Map类型的属性为null值是按照empty输出。而不是MapValueNullAsEmpty..需要你自己定制序列化。
######SerializerFeature.WriteMapNullValue
Map类型的属性为null值是按照empty输出。而不是MapValueNullAsEmpty..需要你自己定制序列化。
fastjson 这个功能没用啊
######我都跟你说了,SerializerFeature.WriteMapNullValue定制项是说如果Map是null值,则序列化为空字符串,如果Map内部put的值是null,依照目前的版本是没办法的。你可以自己定制一套序列化,特殊处理。
我都跟你说了,SerializerFeature.WriteMapNullValue定制项是说如果Map是null值,则序列化为空字符串,如果Map内部put的值是null,依照目前的版本是没办法的。你可以自己定制一套序列化,特殊处理。
我这两天一直在跟踪这个bug ,这是fastjson1.2.58出现的bug 降级到1.2.29就好用了。 1.2.58版本com.alibaba.fastjson.serializer.MapSerializer 211行 应该是bug 1.2.29版本处是
if (value == null) {
if (!out.isEnabled(SerializerFeature.WRITE_MAP_NULL_FEATURES)) {
continue;
}
}
而1.2.58版本为
if (value == null &&
!out.isEnabled(SerializerFeature.WriteMapNullValue)) {
continue;
}
应该是一个bug。 所有的定制皆不生效 只有指定WriteMapNullValue时才生效
######我这两天一直在跟踪这个bug ,这是fastjson1.2.58出现的bug 降级到1.2.29就好用了。 1.2.58版本com.alibaba.fastjson.serializer.MapSerializer 211行 应该是bug 1.2.29版本处是
if (value == null) {
if (!out.isEnabled(SerializerFeature.WRITE_MAP_NULL_FEATURES)) {
continue;
}
}
而1.2.58版本为
if (value == null &&
!out.isEnabled(SerializerFeature.WriteMapNullValue)) {
continue;
}
应该是一个bug。 所有的定制皆不生效 只有指定WriteMapNullValue时才生效
是的
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。