
如何访问嵌套 JSON 结果中的动态 JSON 键
问题:
您有一个带有动态的嵌套 JSON 结果键,例如“141”、“8911”等。您需要访问这些动态键的内容,例如“count”或“more_description”值。
JSON:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | {
"status" : "OK" ,
"search_result" : [
{
"product" : "abc" ,
"id" : "1132" ,
"question_mark" : {
"141" : {
"count" : "141" ,
"more_description" : "this is abc" ,
"seq" : "2"
},
"8911" : {
"count" : "8911" ,
"more_desc" : "this is cup" ,
"seq" : "1"
}
},
"name" : "some name" ,
"description" : "This is some product"
},
{
"product" : "XYZ" ,
"id" : "1129" ,
"question_mark" : {
"379" : {
"count" : "379" ,
"more_desc" : "this is xyz" ,
"seq" : "5"
},
"845" : {
"count" : "845" ,
"more_desc" : "this is table" ,
"seq" : "6"
},
"12383" : {
"count" : "12383" ,
"more_desc" : "Jumbo" ,
"seq" : "4"
},
"257258" : {
"count" : "257258" ,
"more_desc" : "large" ,
"seq" : "1"
}
},
"name" : "some other name" ,
"description" : "this is some other product"
}
]
}
|
登录后复制
解决方案:
要访问动态 JSON 键的内容,请按照以下步骤操作:
- 获取表示的 JSONObject使用 JSONObject.getJSONObject("question_mark") 获取“question_mark”对象。
- 使用 JSONObject.keys() 获取动态键的迭代器。
- 使用迭代器迭代键。 hasNext() 和 Iterator.next() 方法。
- 对于每个动态键,使用 JSONObject.getJSONObject(String key) 获取表示动态值的对应 JSONObject。
- 访问所需的值来自表示动态值的 JSONObject。
Java 代码:
1 2 3 4 5 6 7 8 9 | JSONObject questionMark = searchResult.getJSONObject( "question_mark" );
Iterator keys = questionMark.keys();
while (keys.hasNext()) {
String currentDynamicKey = (String)keys.next();
JSONObject currentDynamicValue = questionMark.getJSONObject(currentDynamicKey);
}
|
登录后复制
以上是如何访问嵌套 JSON 结果中的动态 JSON 键?的详细内容。更多信息请关注PHP中文网其他相关文章!