各位,在object转json,或者map转json 的时候,可能会遇到 value值为null时,key和value都丢失的情况
下面就写两个Demo方便大家理解,大家视具体情况选择:
首先导入pom依赖:
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.60</version>
</dependency>
示例一
@Test
void mapToJsonTest() {
Map<String, Object> map = new HashMap<>();
map.put("a", "101");
map.put("b", "102");
map.put("c", null);
String s1 = JSONObject.toJSONString(map, SerializerFeature.WriteNonStringKeyAsString);
String s2 = JSONObject.toJSONString(map, SerializerFeature.WriteNonStringValueAsString);
//value为null,也显示key
String s3 = JSONObject.toJSONString(map, SerializerFeature.WriteMapNullValue);
String s4 = JSONObject.toJSONString(map, SerializerFeature.WriteNullStringAsEmpty);
String s5 = JSONObject.toJSONString(map, SerializerFeature.WriteNullNumberAsZero);
String s6 = JSONObject.toJSONString(map, SerializerFeature.WriteDateUseDateFormat);
System.out.println("s1=== " + s1);
System.out.println("s2=== " + s2);
System.out.println("s3=== " + s3);
System.out.println("s4=== " + s4);
System.out.println("s5=== " + s5);
System.out.println("s6=== " + s6);
}
输出结果如下:
s1=== {"a":"101","b":"102"}
s2=== {"a":"101","b":"102"}
s3=== {"a":"101","b":"102","c":null}
s4=== {"a":"101","b":"102"}
s5=== {"a":"101","b":"102"}
s6=== {"a":"101","b":"102"}
示例二
@Test
void objectToJsonTest() {
User user = new User();
user.setId(1);
user.setName("AMG");
user.setPwd(null);
String s1 = JSONObject.toJSONString(user, SerializerFeature.WriteNonStringKeyAsString);
String s2 = JSONObject.toJSONString(user, SerializerFeature.WriteNonStringValueAsString);
//value为null,也显示key
String s3 = JSONObject.toJSONString(user, SerializerFeature.WriteMapNullValue);
String s4 = JSONObject.toJSONString(user, SerializerFeature.WriteNullStringAsEmpty);
String s5 = JSONObject.toJSONString(user, SerializerFeature.WriteNullNumberAsZero);
String s6 = JSONObject.toJSONString(user, SerializerFeature.WriteDateUseDateFormat);
System.out.println("s1=== " + s1);
System.out.println("s2=== " + s2);
System.out.println("s3=== " + s3);
System.out.println("s4=== " + s4);
System.out.println("s5=== " + s5);
System.out.println("s6=== " + s6);
}
输出结果如下:
s1=== {"id":1,"name":"AMG"}
s2=== {"id":"1","name":"AMG"}
s3=== {"id":1,"name":"AMG","pwd":null}
s4=== {"id":1,"name":"AMG","pwd":""}
s5=== {"id":1,"name":"AMG"}
s6=== {"id":1,"name":"AMG"}