我已经检查了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"是 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上。
请帮忙。提前谢谢。
嘿,您可以使用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...
}
希望这对您有所帮助。