`
kanpiaoxue
  • 浏览: 1771227 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Gson序列化时排除字段的几种方式

 
阅读更多

 

参考资料:https://www.baeldung.com/gson-exclude-fields-serialization

 

1、使用@Expose注解

class Hello {
    
    public int x;
    @Expose 
    public int y;
    
    public Hello(int x, int y) {
        this.x = x;
        this.y = y;
    }
    
}

 

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

 

2、使用Modifier排除指定类型的字段

import java.lang.reflect.Modifier;
Gson gson = new GsonBuilder()
                .excludeFieldsWithModifiers(Modifier.PROTECTED) 
                .create();

 

3、ExclusionStrategy定制字段排除策略

ExclusionStrategy myExclusionStrategy = new ExclusionStrategy() {
 
            @Override
            public boolean shouldSkipField(FieldAttributes attr) {
                return "arrayList".equals(attr.getName()); 
            }
 
            @Override
            public boolean shouldSkipClass(Class<?> clazz) {
                return false;
            }
            
        };
        
        Gson gson = new GsonBuilder()
                .setExclusionStrategies(myExclusionStrategy)
                .create();

 

4、Gson serializer will ignore every field declared as transient:

publicclass MyClass {
    privatelong id;
    private String name;
    privatetransient String other;
    private MySubClass subclass;
}

publicclass MySubClass {
    privatelong id;
    private String description;
    privatetransient String otherVerboseInfo;
}
分享到:
评论

相关推荐

    Gson 中解决 json 反序列化时相同属性对应不同类型的值的问题(代码)

    Gson 中解决 json 反序列化时相同属性对应不同类型的值的问题(代码),对应文章链接:https://blog.csdn.net/ZiFung_Yip/article/details/89143255

    Gson 枚举类型的统一序列化/反序列化处理

    然而,在使用Gson库进行JSON序列化和反序列化时,枚举处理默认方式可能无法满足所有需求。本篇文章将详细探讨如何通过自定义Gson适配器实现枚举类型的统一序列化和反序列化处理,无需预先定义枚举,也无需修改Gson...

    java 序列化时排除指定属性

    Java序列化默认会序列化对象的所有属性,但可以通过以下两种方式排除指定属性: - **使用`transient`关键字**:在要排除的属性前添加`transient`关键字。例如: ```java public class MyClass implements ...

    Gson解析之自定义序列化和反序列化

    本篇文章将深入探讨如何在使用Gson时进行自定义的序列化和反序列化,以及在遇到后端返回的数据类型与预期不符时的处理策略。 ### Gson自定义序列化 自定义序列化主要是为了在转换Java对象为JSON时,根据特定需求...

    序列化工具(Gson, Jackson, FastJson, ProtoBuf)

    在这个主题中,我们将深入探讨四种常用的序列化工具:Gson, Jackson, FastJson和ProtoBuf,以及与ProtoBuf相关的`proto.exe`工具。 1. Gson(Google Gson): Gson是由Google提供的Java库,用于将Java对象转换为...

    fastJosn Gson Jackson 序列化和反序列化所需要的jarlib.rar

    此外,FastJson还支持JSON到Java的映射配置,可以自定义字段的序列化和反序列化规则。 2. Gson: Gson是Google提供的一个开源项目,用于在Java对象和JSON数据之间进行映射。Gson可以将任何Java对象转换成对应的...

    C++ JSON 序列化与反序列化

    5. 版本兼容性:在设计序列化方案时,要考虑未来版本中可能增加的新字段,避免旧版本程序无法解析新版本生成的JSON。 **四、总结** C++的JSON序列化和反序列化是开发Web服务、网络通信或存储配置文件时必不可少的...

    fastjson、gson、jackson序列化和反序列化所用 json

    Gson的主要功能是通过`Gson.toJson()`方法实现对象到JSON的序列化,以及`Gson.fromJson()`方法实现JSON到对象的反序列化。Gson还支持自定义类型转换器,可以满足定制化的需求。 3. **Jackson**:Jackson是由...

    kotlin gson反序列化默认值失效深入讲解

    Gson反序列化是一种常用的数据序列化和反序列化技术,它广泛应用于 Android 开发、Web 开发等领域。然而,在使用 Gson 进行反序列化时,可能会出现默认值失效的问题,本文将深入讲解 Gson 反序列化默认值失效的原因...

    Gson-Example:Gson 库的使用、自定义序列化器、排除策略等

    Gson库还提供了一些策略来控制哪些字段应该被序列化或反序列化。比如,有时我们可能希望忽略某些字段。这可以通过`@Expose`注解和`GsonBuilder`的`excludeFieldsWithoutExposeAnnotation()`方法实现: ```java ...

    gson源码与文档,集成多枚举类型统一序列化/反序列化处理

    本文将深入探讨如何利用Gson库进行多枚举类型的统一序列化和反序列化处理,以此避免为每个枚举类型单独创建Adapter。 首先,我们需要了解Gson的基本用法。Gson的核心类是`Gson`,它提供了`toJson()`和`fromJson()`...

    Gson_User_Guide.pdf

    当有多个自定义序列化器或反序列化器时,Gson提供了一种机制来在这些组件之间共享状态信息。 Gson的文档通常会详细地介绍这些知识点,提供示例代码来指导如何进行操作。同时,随着Gson库的不断更新和发展,文档也...

    C#和Java的序列化反序列化

    Java中,除了基本的序列化机制,还有许多第三方库如Jackson、Gson等,它们提供了更高效、更灵活的JSON序列化和反序列化功能。例如,Jackson库的`ObjectMapper`类能够方便地将Java对象转换为JSON字符串,反之亦然。 ...

    om.google.gson.Gson Gson maven依赖

    10. **GsonBuilder**:`GsonBuilder`提供了一种构建自定义Gson实例的方式,可以设置各种序列化和反序列化的选项。 在实际开发中,Gson库的灵活性和易用性使其成为处理JSON数据的首选工具。无论是在Android开发还是...

    Android 下用GSON示例

    1. **字段注解**:如果你的对象有私有字段,Gson默认不会序列化或反序列化它们。你可以使用`@Expose`注解标记需要序列化的字段。 2. **自定义序列化和反序列化**:对于复杂的对象,可能需要实现`JsonSerializer`和`...

    protostuff fastjson gson 高性能序列化jar包

    - Gson提供了丰富的API,如`GsonBuilder`,允许开发者定制序列化过程,比如忽略某些字段,或者设置日期格式等。 在实际应用中,选择哪个库主要取决于项目需求。如果需要与protobuf兼容,或者追求极致的性能和内存...

    Java中的Gson序列化工具

    JSON(Java Script Object Notation)是一种轻量级的数据交换格式,通常用于在不同系统之间传输数据。JSON 数据以键值对的形式写法,易于阅读和编写。 1、跨平台支持:JSON可以被多种编程语言解析和生成,可以在不同...

    gson-2.8.6.jar

    gson序列化,反序列化工具包,用来做工具报表使用,

    Gson的三个jar包

    8. **序列化策略**:Gson提供了两种序列化策略:`ExclusionStrategies`允许你在序列化和反序列化时排除某些字段,而`FieldNamingPolicy`则可以改变字段名的映射规则。 在使用Gson的jar包时,你需要确保引入了正确的...

    google gson包json格式化

    Gson可以轻松地处理Java集合(如List、Set、Map)和数组的序列化和反序列化。 6. **日期格式化** 可以通过自定义`JsonSerializer`和`JsonDeserializer`来处理日期格式。 7. **自定义异常处理** 可以捕获并...

Global site tag (gtag.js) - Google Analytics