[英]Convert Json Containing Map of similar list into POJO
我需要將以下響應轉換為POJO
{
"abc" : [
{
"a" : "",
"b": "",
"c" : ""
},
{
"a" : "",
"b": "",
"c" : ""
}
],
"xyz" : [
{
"a" : "",
"b": "",
"c" : ""
},
{
"a" : "",
"b": "",
"c" : ""
}]
}
對於內部對象,我有一個類可以稱之為“ A”。
public class A{
private string a;
private string b;
private string c;
constructor..
getter..
setter..
}
我的json包含許多對象,例如“ acb”和“ xyz”,即,相同對象類型“ A”的列表以及該對象的鍵例如不為人知
{ "abc" [---],
"def" [---],
"ghi" [---],
"jkl" [---],
.......
"xyz" [---]
}
我已經嘗試過使用以下課程
Public class Example{
Map<String,List<A>> response;
public Example(Map<String,List<A>> response){
this.response = response;
}
getter...
setter...
}
它似乎不起作用,我正在使用Object Mapper類進行轉換。
Example example = objectmapper.readValue(responseBody,Example.class);
一個簡單的Map<List<Item>>
可以工作:
class Item{
private String a="";
private String b="";
private String c="";
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
public String getC() {
return c;
}
public void setC(String c) {
this.c = c;
}
}
要創建json:
List<Item> list = new ArrayList<Item>();
list.add(new Item());
list.add(new Item());
List<Item> list2 = new ArrayList<Item>();
list2.add(new Item());
list2.add(new Item());
Map<String,List<Item>> map = new HashMap<String,List<Item>>();
map.put("abc", list);
map.put("xyz", list);
ObjectMapper objectMapper = new ObjectMapper();
String writeValueAsString = objectMapper.writeValueAsString(map);
將json加載到地圖中的相反操作:
String json = "{\"abc\":[{\"a\":\"val\",\"b\":\"val\",\"c\":\"val\"},{\"a\":\"val\",\"b\":\"val\",\"c\":\"val\"}],\"xyz\":[{\"a\":\"val\",\"b\":\"val\",\"c\":\"val\"},{\"a\":\"val\",\"b\":\"val\",\"c\":\"val\"}]}";
Map<String,List<Item>> map = objectMapper.readValue(json, Map.class);
因此,最后,它與您所擁有的非常相似。 僅僅是“示例”的額外級別給您帶來麻煩...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.