2015-07-01 3 views
1

Я использую GSON для синтаксического анализа. Я могу проанализировать json с помощью arrayName, но я не хочу использовать имя массива, поскольку оно не является static.arrayName, и больше будет добавлено с сервера. Пожалуйста, предложите.Parse JSON без использования имени массива

JSON:

{ 
    "cityCode": "", 
    "list": { 
     "one": [ 
      { 
       "adults": 2 
      }, 
      { 
       "adults": 2 
      }, 
      { 
       "adults": 2 
      } 
     ], 
     "three": [ 
      { 
       "adults": 2 
      }, 
      { 
       "adults": 2 
      }, 
      { 
       "adults": 2 
      }, 
      { 
       "adults": 2 
      }, 
      { 
       "adults": 2 
      } 
     ] 
    } 
} 
+0

Ваш Json очень плохой. Вы должны Json 1st согласно вашему требованию. –

ответ

1

Это работает для вашего дела. Помните, что JSONObject имеет метод keys(), который перечисляет все его атрибуты. И вы можете видеть, что результат Iterator не упорядочен, запустите этот код и посмотрите результат.

static void parseJson(String json){ 
    try{ 
     JSONObject object = new JSONObject(json); 

     //Get "list" JSONObject 
     JSONObject obj = object.getJSONObject("list"); 
     //Try to get all attributes of that object 
     @SuppressWarnings("unchecked") 
     Iterator<String> iterator = obj.keys(); 
     while (iterator.hasNext()) { 
      String key = iterator.next(); 
      JSONArray arr = obj.getJSONArray(key); 
      int size = arr.length(); 
      for(int i = 0; i < size; i++){ 
       JSONObject o = arr.getJSONObject(i); 
       Log.e("JSON", "=> "+o.getInt("adults")); 
      } 
     } 
    }catch(JSONException e){ 
     e.printStackTrace(); 
    } 
} 
+0

Спасибо за код, но я использую Gson так, как это можно сделать с помощью json pojo – Dilip

0

Ваш Json должен выглядеть так.

{ 
    "cityCode": "", 
    "list":[ 
      { 
       "index":"one" 
       "adults": 2 
      }, 
      { 
       "index":"one" 
       "adults": 2 
      }, 
      { 
       "index":"one" 
       "adults": 2 
      }, 
      { 
       "index":"three" 
       "adults": 2 
      }, 
      { 
       "index":"three" 
       "adults": 2 
      }, 
      { 
       "index":"three" 
       "adults": 2 
      }, 
      { 
       "index":"three" 
       "adults": 2 
      }, 
      { 
       "index":"three" 
       "adults": 2 
      } 
     ] 
} 

Поделитесь ссылкой на серверный код.

+0

Я agrree с u, но я не могу изменить формат json, так что есть ли возможности проанализировать его с использованием массива. Имя – Dilip

+0

Невозможно без изменения формата. потому что вы не уверены в общем количестве статических индексов. –

Смежные вопросы