如何在另一个 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();
}
我是 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();
}