gpt4 book ai didi

java - gson排除策略仅适用于目标对象的字段

转载 作者:行者123 更新时间:2023-12-01 10:59:52 24 4
gpt4 key购买 nike

我想阻止 Gson 序列化特定类型的字段。为此,我制定了排除策略。排除策略确实成功地识别了正在处理相关类的时间,并且成功地排除了它。不幸的是,它阻止我序列化该类的对象,即使它们是根。我的意思是它们是传递给 gson.toJson() 方法的参数。

更清楚地说,我有一个 Person 类型的类,其类字段本身涉及 Person 类型。我不想序列化 Person 类型的类字段。

public class Person{
private Person child;
private String name;
}

因此,在上面的示例中,我想要一个包含 name 字段但不包含 child 字段的 json 对象。我希望解决方案对字段类型敏感,而不是字段名称。

最佳答案

ExclusionStrategy 定义了两种方法,一种用于排除类型,另一种用于排除字段。只需使用 field 方法即可跳过 Person 类型的任何字段。

class PersonExcluder implements ExclusionStrategy {
@Override
public boolean shouldSkipField(FieldAttributes f) {
return f.getDeclaredType().equals(Person.class);
}

@Override
public boolean shouldSkipClass(Class<?> clazz) {
return false;
}
}

然后使用注册它

Gson gson = new GsonBuilder().setExclusionStrategies(new PersonExcluder()).create();

关于java - gson排除策略仅适用于目标对象的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33427728/

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