解析android中的内部int json对象

时间:2018-06-13 05:13:48

标签: android json gson jsonobjectrequest

我已经检查过有关Json数据解析的Stack Overflow的其他帖子,但没有找到解析内部Json int对象的解决方案。  我收到了来自网络服务的以下回复。

{
    "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”是id,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。

请帮忙。谢谢。

1 个答案:

答案 0 :(得分:0)

嘿,您可以使用HashMap<>来解析此格式this link的动态密钥响应,您可以使用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...
        }

希望这对你有所帮助。