2016-12-06 2 views
0

Я пытаюсь проанализировать данные JSON, которые выглядят как в android;Parse Nested JSON data в Android

{ 
"data": [{ 
    "http_code": 200, 
    "message": "success", 
    "created_at": "2016/10/12", 
     "categories": [{ 
      "cat_id": 1, 
      "cat_name": "Business and Commerce", 
       "subcategories":[{ 
        "subcat_id": 1, 
        "subcat_name": "Intellectual Property", 
         "articles":[{ 
          "article_id": 1, 
          "article_heading": "What is intellectual?", 
          "article_url": "http://example.com/1" 
         },{ 
          "article_id": 2, 
          "article_heading": "Types of intellectual Properties", 
          "article_url": "http://example.com/2" 
         }] 
       }, { 
        "subcat_id": 2, 
        "subcat_name": "Business Licensing", 
         "articles":[{ 
          "article_id": 1, 
          "article_heading": "What is a license?", 
          "article_url": "http://example.com/1" 
         },{ 
          "article_id": 2, 
          "article_heading": "Types of Business Licenses", 
          "article_url": "http://example.com/2" 
         }] 
       }] 
     }, { 
      "cat_id": 2, 
      "cat_name": "Family Law", 
       "subcategories":[{ 
        "subcat_id": 3, 
        "subcat_name": "Domestic Violence", 
         "articles":[{ 
          "article_id": 1, 
          "article_heading": "What is domestic violene?", 
          "article_url": "http://example.com/1" 
         },{ 
          "article_id": 2, 
          "article_heading": "Types of domestic violence", 
          "article_url": "http://example.com/2" 
         }] 
       }, { 
        "subcat_id": 4, 
        "subcat_name": "Marriage", 
         "articles":[{ 
          "article_id": 1, 
          "article_heading": "What is a marriage?", 
          "article_url": "http://example.com/1" 
         },{ 
          "article_id": 2, 
          "article_heading": "Types of marriages", 
          "article_url": "http://example.com/2" 
         }] 
       }] 
     }] 
}] 

}

Я должен видеть данные для конкретного узла, когда я выбираю его через ListView элемент списка щелчком мыши и так далее ....

До сих пор мне удалось разобрать все категории и отображать их в списке, но я хочу отображать подкатегории для категории I, выбранной в списке.

+2

hava посмотреть на [jsonschema2pojo] (http://www.jsonschema2pojo.org/) и [Google Gson] (https://github.com/google/gson), это облегчит его добычу –

ответ

0

Спасибо всем за вашу помощь. Наконец, мне удалось решить проблему; Вот как я это сделал;

JSONObject jsonObj = new JSONObject(jsonStr); 
JSONObject subcategories = jsonObj.getJSONObject("data").getJSONArray("categories").getJSONObject((int)getItemId(position)); 
Log.e("TAG","Subcategories: " + subcategories); 

Я не знаю, правильно ли это, но это сработало в моем случае.

0

Использовать ExpandableListView, example по этой ссылке. Для разбора Json используйте Google gson, это сделает вашу работу простой и эффективной.

1

Установите onItemClickListener в своем списке и используйте позицию выбранного элемента, чтобы вернуть соответствующие подкатегории?

Например, возможно, что-то вдоль линий:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       Switch(position) { 
        case 0: 
         //get first subcategories array values 
         break; 
        case 1: 
         //get second subcategories array values 
         break; 
        .... 
       } 
      }