2015-01-13 3 views
-1

Мне нужно разобрать этот JSON через рекурсию ..Рекурсивный JSON Parser

{ 
    "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

Мне нужно разобрать это и вы хотите установить прядильщики .. после выбора BE/ME/Btech мне нужно получить дочерние данные [компьютерная наука во втором счетчике] после выбора компьютерной науки, снова нужно получить данные о ребенке, например, 1-й год или 2-го года в отдельном счетчике – 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(); 
    }