【问题标题】:How to get a particular object from JSON array [Android] [duplicate]如何从 JSON 数组中获取特定对象 [Android] [重复]
【发布时间】:2019-08-01 17:09:45
【问题描述】:

我有一个这样的响应json,

[{
  "userId": 1,
  "id": 1,
  "title": "quidem molestiae enim"
},
{
  "userId": 2,
  "id": 2,
  "title": "sunt qui excepturi placeat culpa"
},
{
  "userId": 3,
  "id": 3,
  "title": "omnis laborum odio"
}]

我想显示来自 userId = 3 的详细信息,但没有提供端点来获取详细信息。所以我想从这个端点获取详细信息。

在应用程序中:

  • 我已经展示了仪表板的数据(使用 recyclerview/list)
  • 之后,我想从我选择的一个数据中详细了解。
  • 案例:我正在使用 1 个端点(如上)

【问题讨论】:

  • 遍历 JSON 数组并检查属性 userId 是否等于 3。
  • 在java中我应该怎么做?
  • 不,它已经是 json 了。这种情况,我只想得到 {"userId" : 3, "id" : 3, "title" : "omnis laborum odio"}

标签: android kotlin


【解决方案1】:

json 的起点必须始终是 jsonObject 而不是 jsonArray。前往您的后端开发人员并要求他或她将您的 jsonArray 放入 jsonObject 中。

{
    "docs":[{
        "userId": 1,
        "id": 1,
        "title": "quidem molestiae enim"
      },
      {
        "userId": 2,
        "id": 2,
        "title": "sunt qui excepturi placeat culpa"
      },
      {
        "userId": 3,
        "id": 3,
        "title": "omnis laborum odio"
      }]
}

【讨论】:

    【解决方案2】:
    JSONArray jsonArray = (JSONArray) JSON.parse(str); Map map = jsonArray.stream().map( obj -> {JSONObject jsonobject = (JSONObject) obj;return jsonobject;}).collect(Collectors.toMap(obj->obj.getIntValue("userId"),obj-> obj.toJSONString())); System.out.println(map.get(3));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      • 1970-01-01
      • 1970-01-01
      • 2019-10-08
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      相关资源
      最近更新 更多