我已经检查过有关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。
请帮忙。谢谢。
答案 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...
}
希望这对你有所帮助。