gpt4 book ai didi

android - 如何在android中使用迭代器获取Json键和值

转载 作者:搜寻专家 更新时间:2023-11-01 08:36:13 26 4
gpt4 key购买 nike

如何从网络上获取这个 Json 键和值。这是我的代码,但我无法从第二次迭代中得到它。有人可以帮我做这件事吗?

Json 响应:

    "attributes": [
{
"main_id": "3",
"Color": [
{
"id": "60",
"text": "46( +$0.00)"
}
]
},
{
"main_id": "21",
"dede": [
{
"id": "73",
"text": "baba( +$0.00)"
}
]
}
]

这是我解析值的android代码:

JSONArray jsonArrayAttributes = jsonObj.getJSONArray("attributes");
for (int i = 0; i < jsonArrayAttributes.length(); i++) {

JSONObject jsonObject1 = jsonArrayAttributes.getJSONObject(i);
Iterator iteratorKey = jsonObject1.keys();
String strAttrId = (String) iteratorKey.next();
String strAttrName = (String) iteratorKey.next();

JSONArray jsonArrayName = jsonObject1.getJSONArray(strAttrName);

for (int j = 0; j < jsonArrayName.length(); j++) {
JSONObject jsonObjName = jsonArrayName.getJSONObject(j);
}
}

最佳答案

你必须稍微改变你的代码

JSONArray jsonArrayAttributes = jsonObj.getJSONArray("attributes");

for (int i = 0; i < jsonArrayAttributes.length(); i++) {

JSONObject jsonObject1 = jsonArrayAttributes.getJSONObject(i);
Iterator it = jsonObject1.keys();

boolean arrFlag = false;
while (it.hasNext()) {
String key = (String) it.next();
if (!arrFlag) {
String value = jsonObject1.getString(key);
Log.i("Key:Value", "" + key + ":" + value);
arrFlag = true;
} else {
JSONArray value = jsonObject1.getJSONArray(key);
Log.i("Key:Value", "" + key + ":" + value);
arrFlag = false;
}
}
}

它完美地工作。

你会在这里得到所有的键和值。

关于android - 如何在android中使用迭代器获取Json键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36401558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com