温馨提示×

Gson Java如何处理空值

小樊
98
2024-10-22 19:15:16
栏目: 编程语言

在Gson中处理空值有多种方式,以下是其中两种常见的方法:

  1. 使用nullValue属性设置默认值:

Gson提供了一个nullValue属性,可以用来设置在解析JSON时,如果遇到空值应该返回的默认值。例如,以下代码将默认值为空字符串:

Gson gson = new GsonBuilder()
    .nullValue("")
    .create();

MyClass obj = gson.fromJson("{\"name\":\"John\", \"age\":null}", MyClass.class);
System.out.println(obj.getName()); // 输出 "John"
System.out.println(obj.getAge());  // 输出 ""

在上面的代码中,如果JSON中的age字段为空值,那么在解析后,obj对象的getAge()方法将返回空字符串。

  1. 使用excludeFieldsWithoutExposeAnnotation属性排除未注解的字段:

Gson还提供了一个excludeFieldsWithoutExposeAnnotation属性,可以用来排除那些没有使用@Expose注解的字段。如果一个字段没有使用@Expose注解,并且它的值为空值,那么它将不会被包含在解析后的对象中。例如,以下代码将排除所有没有使用@Expose注解的字段:

Gson gson = new GsonBuilder()
    .excludeFieldsWithoutExposeAnnotation()
    .create();

MyClass obj = gson.fromJson("{\"name\":\"John\", \"age\":null}", MyClass.class);
System.out.println(obj.getName()); // 输出 "John"
System.out.println(obj.getAge());  // 输出 null,因为age字段没有使用@Expose注解

在上面的代码中,如果一个字段没有使用@Expose注解,并且它的值为空值,那么它将不会被包含在解析后的对象中。

0