{
"module": "abc",
"chapter": "1",
"source": "Google",
"error": {
"1": {
"sourceLanguage": "English",
"message": "not found",
"array": "[a, b, c]"
},
"2": {
"sourceLanguage": "English",
"message": "not found",
"array": "[a, b, c]"
},
"3": {
"sourceLanguage": "English",
"message": "not found",
"array": "[l, m, n]"
}
}
}
如何解码jsonobject以获取每个键的错误&每个键分别访问每个值。 试过这个,但不能分割每个键的值。
Map mapobj=(JSONObject) jsonObj.get("error");
Iterator iterator=mapobj.entrySet().iterator();
while(iterator.hasNext()){
Map.Entry pair=(Entry) iterator.next();
System.out.println(pair.getKey()+""+pair.getValue());
}
答案 0 :(得分:0)
目前尚不清楚您的问题究竟是什么,但如果您打算一次迭代sourceLanguage
,message
和array
,请重复Iterator
逻辑再一次。
Map mapobj = (JSONObject) jsonObj.get("error");
Iterator iterator = mapobj.entrySet().iterator();
while(iterator.hasNext()){
Map.Entry pair = (Entry) iterator.next();
System.out.println(pair.getKey() + "" + pair.getValue());
Map errorObj = new JSONObject(pair.getValue());
Iterator errorIterator = errorObj.entrySet().iterator();
while(errorIterator.hasNext()) {
Map.Entry errPair = (Entry) errorIterator.next();
System.out.println(errPair.getKey() + "" + errPair.getValue());
}
}
我不确定您正在使用哪个库,我认为JSONObject
是-a Map
适用于此,因为您可以使用您共享的代码打印error
json。