问题
I have a problem. I wrote the JSON parsing code, but it gives me an error. I don't understand what the problem is. String result is JSON.I need to output the amount value from sum. Returns an error: "JSONObject["sum"] not found."
JSONObject json = new JSONObject(result);
JSONObject bpi = json.getJSONObject("sum");
String uuu = bpi.getString ("amount");
System.out.println(uuu);
{
"data": [
{
"txnId": 20071336083,
"personId": 1,
"date": "2020-10-21T20:10:56+03:00",
"errorCode": 0,
"error": null,
"status": "SUCCESS",
"type": "IN",
"statusText": "Success",
"trmTxnId": "403300256",
"account": "xxx",
"sum": {
"amount": 10,
"currency": 643
}
}
]
}
回答1:
Your sum
element is deep below the structure. But your code is expecting it to be under the root object.
Your code is assuming the json is in structure:
{
"sum": {
"amount": 10,
"currency": 643
}
}
But your json data is in following structure:
{ //ROOT JSONObject
"data": [ // JSONArray
{ //JSONObject - first element of array index 0
"account": "xxx",
"sum": { //JSONObject
"amount": 10, //value
"currency": 643
}
}
]
}
So, you need to read it properly:
JSONObject json = new JSONObject(result);
JSONArray data = json.getJSONArray("data");
JSONObject el = (JSONObject) data.get(0);
JSONObject sum = el.getJSONObject("sum");
String uuu = sum.getString("amount");
System.out.println(uuu);
来源:https://stackoverflow.com/questions/64487786/jsonobjectsum-not-found-while-parsing-json-in-java