如何在Java中使用@Expose注解从JSON中排除一个字段?

2023年 9月 17日 56.0k 0

如何在Java中使用@Expose注解从JSON中排除一个字段?

Gson @Expose 注解可用于标记字段是否公开(包含或不包含)以进行序列化或反序列化。 @Expose 注释 可以采用两个参数,每个参数都是一个布尔值,可以采用值 true 或 false。为了让 GSON 对 @Expose 注释做出反应,我们必须使用 GsonBuilder 类创建一个 Gson 实例,并且需要调用 excludeFieldsWithoutExposeAnnotation() 方法,它将 Gson 配置为排除所有没有 Expose 注释的字段进行序列化或反序列化。

语法

public GsonBuilder excludeFieldsWithoutExposeAnnotation()

登录后复制

示例

import com.google.gson.*;
import com.google.gson.annotations.*;
public class JsonExcludeAnnotationTest {
   public static void main(String args[]) {
      Employee emp = new Employee("Raja", 28, 40000.00);
      Gson gson = new GsonBuilder().setPrettyPrinting().create();
      String jsonStr = gson.toJson(emp);
      System.out.println(jsonStr);
      gson = new GsonBuilder().setPrettyPrinting().excludeFieldsWithoutExposeAnnotation().create();
      jsonStr = gson.toJson(emp);
      System.out.println(jsonStr);
   }
}
// Employee class
class Employee {
   @Expose(serialize = true, deserialize = true)
   public String name;
   @Expose(serialize = true, deserialize = true)
   public int age;
   @Expose(serialize = false, deserialize = false)
   public double salary;
   public Employee(String name, int age, double salary) {
      this.name = name;
      this.age = age;
      this.salary = salary;
   }
}

登录后复制

输出

{
 "name": "Raja",
 "age": 28,
 "salary": 40000.0
}
{
 "name": "Raja",
 "age": 28
}

登录后复制

以上就是如何在Java中使用@Expose注解从JSON中排除一个字段?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论