Java 对于jackson,当一个ebean对象是另一个对象的一部分时,如何只序列化它的某些属性

Java 对于jackson,当一个ebean对象是另一个对象的一部分时,如何只序列化它的某些属性,java,json,serialization,jackson,ebean,Java,Json,Serialization,Jackson,Ebean,我有一个API,可以调用它来获取一些Json对象。假设我有两种对象:A和B A对象的实例变量中有一个B对象。当我调用API以获取someB时,我希望得到以下结果: { id: 234, name: theBName, colour: theBColour, size: 123 } { id: 456, type: someAType, b: { id: 234, name: theBName } } 但是,当我调用我的API以获取someA时,

我有一个API,可以调用它来获取一些Json对象。假设我有两种对象:
A
B

A
对象的实例变量中有一个
B
对象。当我调用API以获取
someB
时,我希望得到以下结果:

{
  id: 234,
  name: theBName,
  colour: theBColour,
  size: 123
}
{
  id: 456,
  type: someAType,
  b: {
    id: 234,
    name: theBName
  }
}
但是,当我调用我的API以获取
someA
时,我希望得到以下结果:

{
  id: 234,
  name: theBName,
  colour: theBColour,
  size: 123
}
{
  id: 456,
  type: someAType,
  b: {
    id: 234,
    name: theBName
  }
}
如您所见,在第二种情况下,my
B
对象仅具有其部分属性

我发现如何使用
jsonViews
序列化一些比例,而不是其他比例。我还知道,当将一个对象序列化为另一个对象的一部分时,如何通过添加以下内容将其仅序列化为其
id

 @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
 @JsonIdentityReference(alwaysAsId = true)
 public B someB;
到我的
对象

但就我的一生而言,我不知道如何将这个
B
对象序列化为它的
id
以及我选择的其他属性,当且仅当它被序列化为
A
对象的一部分时

我正在寻找类似这样的注释:

@serialiazeUsingOnlyProperties({"property1", "property2"})
public B someB;

放入我的A对象。

您可以使用
@JsonIgnoreProperties
。注释通常用于类级别,但也适用于字段。应用于字段时,用于忽略注释字段内的特性:

@JsonIgnoreProperties({"colour", "size"})
public B someB;

哦,这是一个很好的答案。我将按照SO的要求等待15分钟进行验证,但这确实解决了我的问题!使用白名单要比使用黑名单容易(我需要10或12个属性),但这就可以了!非常感谢。仅供参考:似乎还不支持白名单属性,但将来将支持: