gpt4 book ai didi

Java 嵌套忽略内部属性

转载 作者:行者123 更新时间:2023-12-01 20:52:28 26 4
gpt4 key购买 nike

我有一个处理类型之间关系的对象模型。这些引用有时会自行循环,为了阻止这种情况(例如 REST 调用),我使用类似 @JsonIgnore 之类的东西。标记以确保我不会出现无限嵌套递归。

这个问题更多的是上下文问题。如果我希望某个项目包含在一个位置而不是另一个位置(如果嵌套),@JsonIgnore从两个位置停止它。

示例:

public class A implements Serializable{
Set<B> bs;
Set<C> cs;
...
}

public class B implements Serializable{
String name;
Set<D> ds;
...
}

public class C implements Serializable{
B b;
...
}

public class D implements Serializable{
...
}

如果A是我运输元素的主要容器。在B的背景下如 A 中所列,我想要Set<D>以显示。当一个对象 B用于 C 的上下文中但是,我想隐藏Set<D>并且只显示名称。

如果我标记@JsonIgnoreB.ds在任何一种情况下它都不会出现。我可以添加一些注释/自定义吗C.b忽略内部属性? @JsonIgnore("ds")或者其他的东西?还有另一种方法可以完全解决这个问题吗?

最佳答案

您可以使用@JsonView注释字段,然后指定您想要在特定情况下使用的序列化 View 。 Here's a post about using it with SpringMVC但无论如何,方法都是一样的。

所以在你的具体例子中,

public class View {
interface Full {}
interface Summary {}
}

public class B implements Serializable{
@JsonView({View.Summary,View.Full})
String name;

@JsonView(View.Full)
Set<D> ds;

}

关于Java 嵌套忽略内部属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43002470/

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