【发布时间】:2017-06-17 13:48:02
【问题描述】:
我有一个拥有另一个实体的实体:
//psuedocode
public class ClassA{
private String name;
@OneToOne
private ClassB classb;
}
public class ClassB{
private String thing1;
private String thing2;
private String thing3;
}
当我检索 ClassA 对象时,我不想看到 ClassB.thing3,但我确实想看到 thing1 和 thing 2:
{
"name":"classa",
"classb":{
"thing1":"hi",
"thing2":"there"
}
}
但如果我查询 ClassB,我想查看所有内容:
{"thing1":"hi",
"thing2":"there",
"thing3":"joseph"}
所以我不能只在 thing3 上放置一个忽略注释,因为那样我会在第二次获取时忽略它。我尝试了Converter<ClassB>,但这迫使我为 JSON 实现 toString() 和 fromString(),这在将 JSON 对象转换为 Java 端时会死掉(转换器需要一个字符串,但改为获取对象)。
如果可能的话,我想避免自己构建/解析 JSON 对象,让我的 json 提供程序完成工作。我在 Johnzon。
【问题讨论】:
-
你的 json 提供者是什么? Jackson 支持 Json 视图,它可以做你想做的,但它是非标准的。例如:baeldung.com/jackson-json-view-annotation