2015-01-13 115 views
-1

我需要通過遞歸解析此JSON ..遞歸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": [] 
     } 
    ] 
} 
+0

你是什麼想要嗎? –

+0

我需要解析這個,並想設置爲spinners ..在選擇BE/ME/Btech之後,我需要獲得孩子數據[計算機科學在第二次微調]後,再次選擇計算機科學需要像第一年或第二年在單獨的微調器 – sree

+0

所有的JSON解析器將遞歸解析通過樹。只需根據選定的鍵瀏覽java.util.Map。 – Gautam

回答

1

我還沒有嘗試過,但在邏輯上應該以這種方式工作:

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(); 
    } 
} 
0
try 
    { 
     JSONObject json=new JSONObject("response"); 
     JSONArray dataArray = json.getJSONArray("data"); 
     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"); 
      for(int j=0;j<childArray.length();j++) 
      { 
       JSONObject childObj=childArray.getJSONObject(j); 
       System.out.println(childObj.getString("id")); 
       System.out.println(childObj.getString("name")); 
       System.out.println(childObj.getString("parent")); 
      } 

     } 
    } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
    }