Android 递归JSON解析器
我需要通过递归解析这个jsonAndroid 递归JSON解析器,android,json,Android,Json,我需要通过递归解析这个json { "code": "200", "data": [ { "id": "2", "name": "BE", "parent": "0", "children": [ { "id": "3", "name": "Computer
{
"code": "200",
"data": [
{
"id": "2",
"name": "BE",
"parent": "0",
"children": [
{
"id": "3",
"name": "Computer Science",
"parent": "2",
"children": [
{
"id": "4",
"name": "1st Year",
"parent": "3",
"children": [
{
"id": "8",
"name": "A",
"parent": "4",
"children": []
},
{
"id": "9",
"name": "B",
"parent": "4",
"children": []
}
]
},
{
"id": "5",
"name": "2nd Year",
"parent": "3",
"children": [
{
"id": "10",
"name": "A",
"parent": "5",
"children": []
},
{
"id": "11",
"name": "B",
"parent": "5",
"children": []
}
]
},
{
"id": "6",
"name": "3rd Year",
"parent": "3",
"children": [
{
"id": "12",
"name": "A",
"parent": "6",
"children": []
},
{
"id": "13",
"name": "B",
"parent": "6",
"children": []
}
]
},
{
"id": "7",
"name": "4th Year",
"parent": "3",
"children": [
{
"id": "14",
"name": "A",
"parent": "7",
"children": []
},
{
"id": "15",
"name": "B",
"parent": "7",
"children": []
}
]
}
]
}
]
},
{
"id": "16",
"name": "ME",
"parent": "0",
"children": []
},
{
"id": "17",
"name": "Btech",
"parent": "0",
"children": []
}
]
}
试试看
{
JSONObject json=新的JSONObject(“响应”);
JSONArray dataArray=json.getJSONArray(“数据”);
对于(int i=0;i我还没有尝试过,但逻辑上应该是这样的:
public void solve(JSONArray dataArray){
try {
for(int i = 0; i < dataArray.length(); i++) {
JSONObject dataObj = dataArray.getJSONObject(i);
System.out.println(dataObj.getString("id"));
System.out.println(dataObj.getString("name"));
System.out.println(dataObj.getString("parent"));
JSONArray childArray = dataObj.getJSONArray("children");
solve(childArray);
}
} catch(Exception e) {
e.printStackTrace();
}
}
public void solve(JSONArray数据数组){
试一试{
对于(int i=0;i
你到底想要什么?我需要解析这个,并想设置一个微调器..选择BE/ME/Btech后,我需要获取子数据[第二个微调器中的计算机科学]再次选择computer science后,需要在单独的spinnerAll中获取子数据,如1st yr或2nd yr,JSON解析器将通过树递归解析。只需根据所选键浏览java.util.Map即可。
public void solve(JSONArray dataArray){
try {
for(int i = 0; i < dataArray.length(); i++) {
JSONObject dataObj = dataArray.getJSONObject(i);
System.out.println(dataObj.getString("id"));
System.out.println(dataObj.getString("name"));
System.out.println(dataObj.getString("parent"));
JSONArray childArray = dataObj.getJSONArray("children");
solve(childArray);
}
} catch(Exception e) {
e.printStackTrace();
}
}