如何在另一个 json 中获取 json 中的 json?

How to fetch json inside json inside another json?

我是 android 和 json 的新手。我想实现一些逻辑,我可以从 json 中的 json 中的 sub1 中获取数据,在另一个 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"
        }
      ]
    }
  ]
}

Android SDK 包含 org.json 库。您可以使用 JSONObject class.

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

我省略了异常处理,但这是基本思路。

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();
        }