在开发中,当处理 JSON 数据时,经常会遇到Bean
对象转换成JSON
字符串,或者将JSON
字符串转换成Bean
对象的情况。但是,当Bean
对象中的某个字段为null
时,处理起来就需要格外小心。
当处理Bean
转换成JSON
字符串时,如果Bean
中某个字段为null
,则该字段将默认不输出到JSON
字符串中。例如:
public class User { private String name; private Integer age; // getter, setter methods } User user = new User(); user.setName("Jack"); String jsonString = new Gson().toJson(user); // 输出结果:{"name":"Jack"}
可以看到,由于User
中的age
字段为null
,因此在转换成JSON
字符串时并未输出。
相反地,当处理JSON
字符串转换成Bean
对象时,如果JSON
中某个字段的值为null
,那么这个值在Bean
对象中仍将是null
。例如:
String jsonStr = "{\"name\":\"Jack\", \"age\":null}"; User user = new Gson().fromJson(jsonStr, User.class); System.out.println(user.getName()); // Jack System.out.println(user.getAge()); // null
这也就意味着,当我们使用Bean
对象接收JSON
数据时,需要做出null
值的判断,以避免NullPointerException
异常。例如:
if (user.getAge() != null) { // do something } else { // handle null value }
因此,在处理Bean
转换成JSON
字符串或者JSON
转换成Bean
对象的过程中,需要时刻注意null
值的处理,保障代码的健壮性。