2013-05-30 8 views
0

Я следующие данные из JSONКак извлечь данные из JSON

{ 
     "MenuName": "starter dish", 
     "SubMenu": [ 
      "pizza dish1", 
      "pizza dish2" 
     ], 
     "Price": [ 
      "100", 
      "110" 
     ] 
    }, 

Отсюда я могу легко извлечь данные из ключа «Menuname» в качестве стартера блюдо, но когда я получить данные из «Submenu» Я получаю всю строку как ["pizza dish1", "pizza dish2"].

Пожалуйста, предложите мне путь к дифференцировке и pizza dish1 and pizza dish2

+0

использование JSON синтаксический ... – Riser

+0

Попробуйте это: http://stackoverflow.com/a/9606629/2427543 – vdwijngaert

+0

@vdwijngaert Я получаю цену от разбора, но вся строка, я получаю оба значения. нужно различать их –

ответ

4

Submenu и Price не Струнный это JSONArray так что вам нужно будет использовать for-loop, чтобы получить все значения из SubmenuJSONArray как:

JSONArray jsonsubmenu=yourjsonobject.getJSONArray("Submenu"); 

    for(int i=0;i < jsonsubmenu.length();i++){  
    // get all values from jsonsubmenu JSONArray.. 
     String str_value=jsonsubmenu.optString(i); 
     .... 
    } 
2

попробовать это

  for (int i = 0; i < jsonArray.length(); i++) { 
      jsonArray.getJSONObject(i).getInt("SubMenu"); 
      } 
0

Hi There in th в senarerio вы должны использовать

JSONArray _submenu = object.getJSONArray("SubMenu"); 
     for (int i = 0; i < _submenu.length(); i++) { 
      String text = _submenu.getString(i); 
     } 
     JSONArray _price = object.getJSONArray("Price"); 
     for (int i = 0; i < _price.length(); i++) { 
      String text = _price.getString(i); 
     } 
2

вы можете использовать this link для создания класса Pogo для ответа. Он автоматически генерирует класс для вашего ответа.

Используйте библиотеку google GSON, чтобы проанализировать ваш ответ.

или вы можете просто создать массив JSON или объекты для его анализа. в вашем случае это JSON Object или массивы JSON.

0

Вы можете получить значения массива и сохранить его в строке [] и использовать их в соответствии с вашими потребностями. то есть следующим образом.

try { 
      JSONObject jObject = new JSONObject(jsonString); 
      JSONArray jSubmenu = jObject.getJSONArray("SubMenu"); 
      subMenu = new String[jSubmenu.length()]; 
      for (int i = 0; i < subMenu.length; i++) { 
       subMenu[i] = jSubmenu.getString(i); 
      } 
      JSONArray jPrice = jObject.getJSONArray("Price"); 
      price = new String[jPrice.length()]; 
      for (int i = 0; i < price.length; i++) { 
       price[i] = jPrice.getString(i); 
      } 

     } catch (Exception e) { 
      // TODO: handle exception 
     } 
0

Просто, чтобы бросить быстрый ход - прочитайте и используйте GSON.

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

Вот ссылка: google-gson

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