JSONObject[“sum”] not found while parsing JSON in Java

佐手、 提交于 2021-02-11 06:35:37

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!