将JSON数据转换为Java对象列表

时间:2014-03-24 17:58:53

标签: java json list serialization converter

我有这样的JSON数据:

[ {
    "data": "data",
    "what": "what2",
    "when": 1392046352,
    "id": 13,
    "tags": "checkid:testcheckid, target:server.id.test, id:testid"
}, {
    "data": "Test",
    "what": "Test",
    "when": 1395350977,
    "id": 5,
    "tags": "checkid:testcheckid, target:server.id.test, id:testid"
} ]

我有一个Java类,我想将这个JSON转换为我的类的实例列表。我找到了如何转换单个对象,但不是列表。

3 个答案:

答案 0 :(得分:1)

使用Jackson,您可以执行以下操作:

String jsonStr = "...";
ObjectReader reader = new ObjectMapper().reader();
List<Map<String, Object>> objs = reader.readValue(jsonStr);

Map<String, Object> myFirstObj = objs.get(0);
myFirstObj.get("data");
myFirstObj.get("what");
// and so on

甚至更好的是你可以创建一个pojo并执行:

String jsonStr = "...";
ObjectMapper mapper = new ObjectMapper();
List<MyPojo> myObjs = mapper.readValue(jsonStr, new TypeReference<List<MyPojo>>() {});
MyPojo myPojo = myObjs.get(0);
myPojo.getData();
myPojo.getWhat();
// and so on

答案 1 :(得分:0)

有几个库可以解析JSON,例如GSon和Jackson。如果没有提供开箱即用的功能,您可以编写一个可以满足您需求的自定义反序列化器。

答案 2 :(得分:0)

我真的不了解你的问题,如果你已经拥有并且对象只是创建一个列表(例如ArrayList)并添加它们。

ArrayList<YourObject> list = new ArrayList<YourObject>();
list.add(yourObject);