首页 > 解决方案 > 如何从 JSONArray 获取位置部分和项目?

问题描述

现在,我想Gridview用部分创建,我遵循 这个

然后我遇到了问题,我不知道如何从中获取位置部分和项目JSONArray

我有JSONArray这样的

“Team”: [
        {
          "team_id": "16",
          "team_name": "3",
          "team_max_player": "6",
          "team_amount": "2",
          "team_member_list": [
            {
              "id": "19",
              "room_id": "23",
              "user_id": "75",
              "team_id": "16",
              "detail_status": ""
            },
            {
              "id": "21",
              "room_id": "23",
              "user_id": "46",
              "team_id": "16",
              "detail_status": ""
            }
          ]
        },
        {
          "team_id": "14",
          "team_name": "1",
          "team_max_player": "1",
          "team_amount": "1",
          "team_member_list": [
            {
              "id": "20",
              "room_id": "23",
              "user_id": "40",
              "team_id": "14",
              "detail_status": ""
            }
          ]
        }
      ]

我想将“team_id”设置为部分,将“team_member_list”设置为该部分中的项目。请教我这样做。

我目前在学校 12 年级,有编程课、android studio、JAVA Moblie App。请帮助我并对我的英语感到抱歉。

标签: javaandroid

解决方案


首先,您可以将 JSON 作为字符串加载并使用JSONObject 类解析 JSON 字符串。

然后,您可以使用JSONArray 类解析 JSONObject 中的 JSON 数组,以检索您想要的详细信息。

请参阅下面的代码示例,该示例将在控制台中记录每个团队成员的 ID 以及他们所属的团队的 ID。

    JSONObject jsonObject = new JSONObject(jsonString);
    JSONArray teams = jsonObject.getJSONArray("Team");
    for (int i = 0; i < teams.length(); i++) {
        String teamId = jsonObject.getJSONArray("Team").getJSONObject(i).getString("team_id");
        JSONArray teamMemberList = jsonObject.getJSONArray("Team").getJSONObject(i).getJSONArray("team_member_list");
        for (int j = 0; j < teamMemberList.length(); j++) {
            String teamMemberId = teamMemberList.getJSONObject(j).getString("id");
            Log.i("team", "team id: " + teamId + " team member id: " + teamMemberId);
        }
    }

如果您想了解更多关于 Android 中 JSON 解析的信息,我为 Android 编写了一个 JSON 教程,其中更详细。


推荐阅读