使用Java从JSON提取名称/值对

Mis*_*vor 1 java parsing json

我有这个JSON代码:

{
"success": 1,
"item": [
    {
        "itemId": "jogurt123",
        "name": "Jogurt",
        "description": "kajmak",
        "pictureUrl": "https://www.google.hr/images/srpr/logo11w.png",
        "categoryId": "mlijeko"
    }
],
"specs": [
    {
        "specId": "volumen",
        "value": "1",
        "unit": "litra"
    },
    {
        "specId": "mast",
        "value": "50",
        "unit": "%"
    }
]
Run Code Online (Sandbox Code Playgroud)

}

我想知道如何使用Java将名称/值对提取到字符串中。我想得到最终结果:

String name = "Jogurt"
String description = "kajmak"
etc...
Run Code Online (Sandbox Code Playgroud)

我尝试使用JSONObject创建一个包含此名称/值对的对象,然后我想提取它们,但是在以下代码中

    String getParam(String code, String element){
    try {
        String base = this.getItembyID(code);
        JSONObject product = new JSONObject(base);
        String param = product.getString("name");
        return param;
    } catch (JSONException e) {
        e.printStackTrace();
        return "error";
    }
    }
Run Code Online (Sandbox Code Playgroud)

我得到一个例外,说当明确存在时,JSONObject中没有元素“名称”。有什么建议么?

编辑:getItembyID方法返回上面以字符串形式编写的JSON代码。JSON代码已通过验证

Nam*_*mbi 5

{-> JSONObject

[-> JSONArray

您需要在Jsonarray中获取jsonObject

像这样

String getParam(String code, String element){
    try {
           String base = this.getItembyID(code);
           JSONObject product = new JSONObject(base);
          JSONArray jarray = product.getJSONArray("item");
         String param =  jarray.getJSONObject(0).getString("name");
  return param;
    } catch (JSONException e) {
        e.printStackTrace();
        return "error";
    }
    }
Run Code Online (Sandbox Code Playgroud)