【问题标题】:How to get childs of this JSON Object in Java如何在 Java 中获取此 JSON 对象的子对象
【发布时间】:2022-11-29 05:09:27
【问题描述】:

我正在使用 volley 将数据发布到服务器,这是我从服务器获得的响应。

{"result":[{"result":"success","id":"345"}]}

如何从此响应中获取 id 的值。

我试过这样,但我得到了完整的JSONArray作为回应。

JSONArray obj = new JSONObject(response).getJSONArray("result"); 
JSONArray resp = obj.optJSONArray(0);

如何获取idresult的值?

【问题讨论】:

  • 您使用的是哪个 JSON 库? JSON 不是 Java 运行时库的一部分。
  • Maven 存储库

标签: java json org.json


【解决方案1】:

如何获取idresult的值?

由于您手头有一个 JSONarray,它由 JSONobjects 组成,您可以遍历此数组以访问每个 JSONobject 并检索其属性。

为了方便起见,我们可以定义一个对应于JSONobject 的 POJO。它可以表示为 class 或 Java 16 record,由于其简洁性,我将进行记录:

public record Result(String result, int id) {}

这就是我们如何将 JSONarray 解析为 POJO 的 List

String response = """
    {"result":[{"result":"success","id":"345"}]}
""";
    
JSONArray array = new JSONObject(response).getJSONArray("result");
        
List<Result> results = new ArrayList<>();
for (int i = 0; i < array.length(); i++) {
    JSONObject res = (JSONObject) array.get(i);
    results.add(new Result(res.getString("result"), res.getInt("id")));
}
        
results.forEach(System.out::println);

输出:

Result[result=success, id=345]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-16
    • 2016-03-22
    • 2015-09-10
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多