【发布时间】:2018-08-29 13:00:10
【问题描述】:
我有一个 API,我可以调用它来获取一些 Json 对象。假设我有两种对象:A 和 B。
A 对象在其实例变量中有一个B 对象。当我调用我的 API 来获取 someB 时,我想要以下结果:
{
id: 234,
name: theBName,
colour: theBColour,
size: 123
}
但是当我调用我的 API 来获取 someA 时,我想要以下结果:
{
id: 456,
type: someAType,
b: {
id: 234,
name: theBName
}
}
如您所见,我的B 对象在第二种情况下只有部分属性。
我找到了如何使用 jsonViews 序列化某些 proporties 而不是其他 proporties。我也知道如何将一个对象序列化为仅id,当序列化为另一个对象的一部分时,添加:
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
@JsonIdentityReference(alwaysAsId = true)
public B someB;
到我的A 对象。
但是对于我的生活,我无法弄清楚如何将这个 B 对象序列化为它的 id AND 我选择的其他属性,当且仅当它是序列化为A 对象的一部分。
我正在寻找类似这样的注释:
@serialiazeUsingOnlyProperties({"property1", "property2"})
public B someB;
放入我的 A 对象。
【问题讨论】:
标签: java json serialization jackson ebean