java - 使用 Java 进行嵌套 JSON 解析

标签 java

{
  "transaction": {
    "id": 1,
    "empid": "12345",
    "details1": {
      "name": "xyz",
      "age": "30",
      "sex": "M",
      "Address": {
        "Office": "office",
        "Home": "Home"
      }
    },
    "abcDetails": "asdf",
    "mobile": 123455
  },
  "details2": {
    "id": 2,
    "empid": "64848",
    "details": {
      "name": "eryje",
      "age": 3027,
      "sex": "M",
      "Address": {
        "Office": "office",
        "Home": "Home"
      }
    },
    "abcDetails": "fhkdl",
    "mobile": 389928
  }
}

我正在获取上述格式的数据。在这里,我使用循环分割和迭代数据。第一次得到以下格式化数据。因此,在这里我想获取姓名和年龄值以及 details1.Address.Office 值(键不是静态的)。

 "details1": {
        "name": "xyz",
        "age": "30",
        "sex": "M",
        "Address": {
            "Office": "office",
            "Home": "Home"
        }
    }

最佳答案

尝试使用 JSONObject keys() 获取 key ,然后迭代每个 key 以获取动态值。

// searchResult refers to the current element in the array "search_result"
JSONObject questionMark = searchResult.getJSONObject("question_mark");
Iterator keys = questionMark.keys();

while(keys.hasNext()) {
    // loop to get the dynamic key
    String currentDynamicKey = (String)keys.next();

    // get the value of the dynamic key
    JSONObject currentDynamicValue = questionMark.getJSONObject(currentDynamicKey);

    // do something here with the value...
}

引用:How to parse a dynamic JSON key in a Nested JSON result?

关于java - 使用 Java 进行嵌套 JSON 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42324704/

相关文章:

java - 使用 FusedlocationProviderClient Api 在 Android 中进行实时位置跟踪的问题

java - 我想根据表单中输入的数字更改屏幕转换目标

java - itemStateChanged 和 actionPerformed 问题

java - 在全屏独占模式下在 JtextField 中键入问题

Java 读写 Spark Vector 到 Hdfs

java - Android 构建工作区错误

java - 将 Moxy 设置为默认 jaxb 实现提供者

java - SolrIndexerJob : runtime error

java - 如何将 JodaTime 与 Spring 和 Hibernate 一起使用?

java - Eclipselink 持久性转换器未调用