2016-07-12 3 views
1

У меня возникла проблема с синтаксическим анализом от JSON до Listview в Android. Это пример данных из JSON:JSON Parsing to ListView Android

[{ 
    "area": "Kebon Jeruk", 
    "city": "Jakarta" 
}, { 
    "area": "Puri", 
    "city": "Jakarta" 
}, { 
    "area": "Grogol", 
    "city": "Jakarta" 
}] 

, и я хочу сделать ListView, как это:

enter image description here

Большое спасибо.

+0

В чем проблема? любая ошибка или что-то еще? –

+0

Я смущен, как разбирать эти данные, потому что это первый раз, когда я хочу разобрать JSON @KhizarHayat ... –

+0

следуйте некоторому учебнику, например [http://www.tutorialspoint.com/android/android_json_parser.htm] –

ответ

1
JSONArray arr = new JSONArray(yourJSONresponse); 
List<String> list = new ArrayList<String>(); 
for(int i = 0; i < arr.length(); i++){ 
    String info = arr.getJSONObject(i).getString("area") + arr.getJSONObject(i).getString("city"); 
    list.add(info); 
} 

А затем просто превратить список в массив строк и использовать адаптер для заполнения ListView следующим образом:

ArrayAdapter adapter = new ArrayAdapter<String>(this,R.layout.ListView,StringArray); 
ListView listView = (ListView) findViewById(R.id.listview); 
listView.setAdapter(adapter); 
+0

Thank вы очень @ jack-ryan. Можете ли вы дать мне ссылку на полный учебник, чтобы сделать это? –

+1

Да, вот документация для стандартных библиотек 'JSON' в Java/Android: https://developer.android.com/reference/org/json/JSONObject.html –

+0

И вот краткий учебник для ListView в Android: http://www.tutorialspoint.com/android/android_list_view.htm –

0

Оставаясь на собственных

try { 
     ArrayList<User> list = new ArrayList<>(); 
     JSONArray array = new JSONArray(url); 
     for (int i = 0; i <array.length() ; i++) { 
      JSONObject jsonObject = array.optJSONObject(i); 
      String area = jsonObject.optString("area"); 
      String city = jsonObject.optString("city"); 
      list.add(new User(area,city)); 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

} 

class User { 
    String area; 
    String city; 
    public User(String area,String city){ 
     this.area=area; 
     this.city=city; 
    } 
+0

Большое спасибо @cgx, я попробую это –

0

делают изменения в ur layoutxml файл взять два текстовых поля рядом с этим будет работать