gpt4 book ai didi

java - 如何在 Gson 中动态启用/禁用一个字段序列化

转载 作者:行者123 更新时间:2023-12-01 19:31:58 24 4
gpt4 key购买 nike

我有一个类说“人”。当我使用gson将其转换为json时,有时我想包含字段name,但有时我不想包含它。 gson 中有没有可以用于这种目的的 api?

class Person {
int id;
String name;
}

最佳答案

一种方法是在Gson中使用ExclusionStrategy。它允许我们定义一个策略来告诉 GsonBuilder 是否使用自定义标准序列化类或字段。

代码片段
我使用变量 isNameIgnored 来启用/禁用字段 name 动态序列化。

boolean isNameIgnored = false;
ExclusionStrategy strategy = new ExclusionStrategy() {
@Override
public boolean shouldSkipClass(Class<?> clazz) {
return false;
}

@Override
public boolean shouldSkipField(FieldAttributes field) {
return isNameIgnored ? "name".equals(field.getName()) : false;
}
};

然后可以将该策略应用到GsonBuilder中进行序列化,如下所示:

Gson gson = new GsonBuilder()
.addSerializationExclusionStrategy(strategy)
.create();

关于java - 如何在 Gson 中动态启用/禁用一个字段序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59483244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com