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來說可能沒有意義,但對於我的應用程序來說這很重要。 –