Java - 如何在JSON数组中获取对象值?

时间:2014-03-13 17:28:04

标签: java json

我在下面有一个类似JSON的示例,我试图获取一些值,例如值。

results.shipper.id



{
    "results": [
        {
            "updated": false,
            "notification": false,
            "some_data": {
                "id": 15989,
                "pieces": 0,

            },
            "shipper": {
                "updated": false,
                "notification": false,
                "id": 1587,
                "parent": {
                    "updated": false
                },

我试图通过这种方式获得价值:

    String test = shipmentData.getJSONObject("shipper").getString("id");

但它总是抛出异常。我认为,该异常是由于我没有通过"结果"访问这些值而引起的。阵列。

如何轻松获取我需要的价值。

我尝试找到一些助手(Gson,fast-json等等)但是它似乎是一个非常复杂的使用(我想使用JSON树直接访问值" on-the -fly"或者访问像对象这样的值,它意味着.. Object.InnerObject.value)。

所以问题是我该怎么做呢?

感谢您的任何建议。

1 个答案:

答案 0 :(得分:9)

需要遍历JSON才能访问id

JSONArray results = shipmentData.getJSONArray("results");
JSONObject first = results.getJSONObject(0);
JSONObject shipper = first.getJSONObject("shipper");
Integer id = shipper.getInt("id");

将int解析为字符串:

String id = String.valueOf(shipper.getInt("id"));