0
我有这个对象结构,我试图用杰克逊注释到元帅/解组到JSON文件。包含对象映射到JSON的对象的列表清单
public class A {
List<B> bList;
}
public class B {
String attr;
Map<String, C> map;
}
public class C {
@JsonIgnore
String name;
String value;
}
A
具有B
列表的和B
具有地图的C
一个的情况下,映射的关键是C
的name
属性。我想如果可能的JSON看起来像这样:
{
"bList" : [
{
"attr":"itsValue"
"KEY_IN_MAP":"VALUE_IN_C",
"KEY_2_IN_MAP":"VALUE_2_IN_C"
}
]
}
凡KEY_IN_MAP
是C
在B
的地图键和VALUE_IN_C
名称是在地图中的值对象的值。我试过注释看跌方法地图:
@JsonAnySetter
private void put(String name, C value) {
map.put(name, c);
}
但是编组这给了我:
{
"bList" : [
{
"attr":"itsValue"
"KEY_IN_MAP": {
"value":"VALUE_IN_C",
},
"KEY_2_IN_MAP": {
"value":"VALUE_2_IN_C"
}
}
]
}
有没有什么办法让杰克逊或任何其他JSON序列化图书馆的上述映射?我的目标是摆脱每次编写"value"
的冗余并尽可能压缩文件。
在B
地图可以变成的C
清单,但我仍然需要映射是
{"name" : "value"} for each object C
为什么不让'Map地图代替'Map map'? –
Srinivas
如何让你的'地图地图'列表'而不是? –
Srinivas
这有效,但我有点想保持对象结构。对于Json来说可能没有意义,但对于我的应用程序来说这很重要。 –