3

我有一个包含两个列表的数组。每个列表都包含对象。第一个列表中的对象与第二个列表中的对象不同。在 JSON 中,它看起来像这样:

[  
    {  
        "domains":  
        [  
            {  
                "attrb1": "aaaa",  
                "attrb2": "bbbb"  
            },
            {  
                "attrb1": "cccc",  
                "attrb2": "dddd"  
            }  
        ]  
    },  
    {     
        "terms":  
        [  
            {  
                "attrb1": "cccc",  
                "attrb2": "dddd"  
            }  
        ]  
    }  
]  

我将此 JSON 字符串保存到文件 initial-elements-v02.json 中,我正在考虑这样的事情来反序列化它:

final ObjectMapper mapper = new ObjectMapper();

List<List<Object>> glossaryElements = null;
   try {
       glossaryElements = mapper.readValue(
               arg0.resourceAsStream("initial-elements-v02.json"),
               new TypeReference<ListList<<Object>>>() {
               });

谢谢!
叶夫根尼

4

1 回答 1

1

根据Data Binding with Generics,我会从最里面到外面构建

Map<String, String>

List<Map<String, String>>

Map<String, List<Map<String, String>>>

List<Map<String, List<Map<String, String>>>>

然后用这个

List<Map<String, List<Map<String, String>>>> glossaryElements = null;
glossaryElements = mapper.readValue(
        arg0.resourceAsStream("initial-elements-v02.json"),
        new TypeReference<List<Map<String, List<Map<String, String>>>>>() {});

如果initial-elements-v02.json是文件名,我想你也可以使用

new File("initial-elements-v02.json")
于 2013-01-31T09:15:14.447 回答