Android 递归JSON解析器

Android 递归JSON解析器,android,json,Android,Json,我需要通过递归解析这个json { "code": "200", "data": [ { "id": "2", "name": "BE", "parent": "0", "children": [ { "id": "3", "name": "Computer

我需要通过递归解析这个json

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