2012-02-21 32 views
4

给定一个由hibernate管理的复合键的实体类是否有一种简单的方法将键属性压缩到对象本身中?有没有简单的方法来使用杰克逊来压扁JSON对象属性?

考虑:

{ 
    "key": { 
     "field1": 1, 
     "field2": 2 
    }, 
    "prop": "value" 
} 

我宁愿这是序列化为:

{ 
    "field1": 1, 
    "field2": 2, 
    "prop": "value" 
} 

我真的不希望有实现JsonSerializableWithType,因为它是目前很好,这只是关键班我想把这些字段弄平。

回答

1

杰克逊使用反射,你可以操纵获取/设置者。您可以添加到@JsonIgnoregetKey(),并添加两个方法

@JsonProperty("field1") 
private int getField1() 

@JsonProperty("field2") 
private int getField2() 

您可能要实现setField1()setField2()为好。

+0

当然,我为什么没有想到这一点。由于对象是只读的,所以不需要setter,此外,改变PK是一个坏主意。 :) – 2012-02-21 08:15:13

相关问题