Как получить json внутри json внутри другого json? - PullRequest
0 голосов
/ 28 февраля 2020

Я новичок в android и json. Я хочу реализовать некоторые логи c, где я могу получить данные из sub1 из json внутри json внутри другого json. Есть ли способ получить эти данные?

Так выглядит мой json файл .

{
  "Aeronautical": [],
  "Automobile": [],
  "Civil": [],
  "Computer": [
    {
      "sub1": [
        {
          "id": "1",
          "name": "name1",
          "year": "2019",
          "url": "some_url"
        },
        {
          "id": "2",
          "name": "Name 2",
          "year": "2018",
          "url": "some url"
        },
        {
          "id": "3",
          "name": "Name 4",
          "year": "2018",
          "url": "some url"
        }
      ]
    }
  ]
}

Ответы [ 2 ]

2 голосов
/ 28 февраля 2020

Android SDK включает в себя орг. json lib. Вы можете использовать класс JSONObject.

String jsonString = /* obtain some JSON however you need to*/;
JSONObject root = new JSONObject(jsonString);
JSONObject sub1 = root.getJSONObject("sub1");

Я исключил обработку исключений, но это основная идея c.

1 голос
/ 28 февраля 2020

sub1 находится внутри другого массива, поэтому сначала вы должны получить данные из компьютерного массива

   JSONObject obj = null;
        try {
            obj = new JSONObject(json);

        JSONArray arr = obj.getJSONArray("Computer");

        for (int i = 0; i < arr.length(); i++)
        {
            JSONObject obj_computers = arr.getJSONObject(i);
            JSONArray sub1 = obj_computers.getJSONArray("sub1");

            for (int j = 0; j < sub1 .length(); j++)
            {
                JSONObject sub1_data = sub1.getJSONObject(j);
                Log.i("test" ,sub1_data.toString());
            }
        }
        } catch (JSONException e) {
            e.printStackTrace();
        }
...