Java 如何解析嵌套JSON结果中的动态JSON键?

有以下格式的JSON结果,JSON Lint将其显示为“有效响应”。

我的问题是:由于“ 141”,“ 8911”等都是动态值,我如何访问“ question_mark”的内容?

我的示例代码用于访问“产品”的价值。

//Consider I have the first <code>JSONObject</code> of the "search_result" array and 

//I access it's "product" value as below.

String product = jsonObject.optString("product"); //where jsonObject is of type JSONObject.

//<code>product<code> now contains "abc".

JSON:

{

"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"

}

]

}

我的问题标题“动态键”可能是错误的,但目前我不知道该问题的最佳名称是什么。

任何帮助将不胜感激!

回答:

使用JSONObject keys()获取密钥,然后迭代每个密钥以获取动态值。

大致的代码如下所示:

    // searchResult refers to the current element in the array "search_result"

JSONObject questionMark = searchResult.getJSONObject("question_mark");

Iterator keys = questionMark.keys();

while(keys.hasNext()) {

// loop to get the dynamic key

String currentDynamicKey = (String)keys.next();

// get the value of the dynamic key

JSONObject currentDynamicValue = questionMark.getJSONObject(currentDynamicKey);

// do something here with the value...

}

以上是 Java 如何解析嵌套JSON结果中的动态JSON键? 的全部内容, 来源链接: utcz.com/qa/400427.html

回到顶部