-1

我已经检查过 Stack Overflow 上关于 Json 数据解析的其他帖子,但没有找到解析内部 Json int 对象的解决方案。我从 Web 服务收到以下响应。

{
    "counter":[
    {
        "1":[
        {
            "message":"28",
            "events":0,
            "shared_files":"8"
        }
        ],
        "2":[
        {
            "message":"39",
            "events":"4",
            "shared_files":"7"
        }
        ]
        .....

        "n":[
        {
            "message":"39",
            "events":"4",
            "shared_files":"7"
        }
        ]

    }
    ]
}

其中“1”、“2”和“n”是 ids 和 json 对象大小根据数据变化。我可以使用以下代码解析上述响应,直到 JsonObect:

JsonArray jsonArray = GetJson_.getArray(response, "counter");
if (jsonArray != null) {
    JsonObject object = jsonArray.get(0).getAsJsonObject();
}

我的 jsonObject 现在看起来像

{
    "1":[
    {
        "message":"28",
        "events":0,
        "shared_files":"8"
    }
    ],
    "2":[
    {
        "message":"39",
        "events":"4",
        "shared_files":"7"
    }
    ]
    .....

    "n":[
    {
        "message":"39",
        "events":"4",
        "shared_files":"7"
    }
    ]
}

但我被困在如何解析动态的 JsonObject 上。

请帮助。在此先感谢。

4

1 回答 1

0

嘿,您可以使用此链接HashMap<>来解析动态键响应,您可以使用其他方式,我在下面完成:Iterator

JSONObject jsonObject= m_jArry.getJSONObject(0);
        Log.e("ad","--------"+jsonObject.toString());

        Iterator keys = jsonObject.keys();

        while(keys.hasNext()) {
            // loop to get the dynamic key
            String currentDynamicKey = (String)keys.next();

            // get the value of the dynamic key
            JSONObject currentDynamicValue = jsonObject.getJSONObject(currentDynamicKey);

            // do something here with the value...
        }

希望这对您有所帮助。

于 2018-06-13T06:35:29.373 回答