我是android和json的新手。我想实现一些逻辑,在这里我可以从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",
},
],
}
],
}
Android SDK包含org.json库。您可以使用JSONObject类。
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();
}