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

标签 java json parsing

我有这个 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": "%"
    }
]

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

String name = "Jogurt"
String description = "kajmak"
etc...

我尝试使用 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";
    }
    }

我得到一个异常,说 JSONObject 中显然没有元素“名称”。有什么建议吗?

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

最佳答案

{ ->JSON对象

[-> JSON数组

需要获取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";
    }
    }

关于java - 使用 Java 从 JSON 中提取名称/值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22004160/

相关文章:

java - 如何使用 PDFBox 从 PDF 中提取数据时用单词替换空格

java - 重复循环大量对象时如何优化性能

java - 将 JTextPane 添加到 BorderLayout.SOUTH 会导致 JScrollPane 滚动

java - 如何将字符串中的每个单词大写(java)

html - 如何外部化 json-ld 并包含在 html 文档中

javascript - 使用 jQuery 和 Javascript 的多个 API 调用架构

perl - 在perl中解析pdf

json - GraphQL 和 rest api 有什么区别

java - 使用 SAX 解析器解析具有多个 XML 标签的 XML 文件

xml - 如何解析文件夹中的 XML 文件以映射 String,List<String>