2015-12-13 4 views
0

Я пишу простой веб-сервис, используя php и mysql в качестве сервера и приложения для Android в качестве клиента для извлечения данных.Передача массива JSON - Android

Моя серверная сторона возвращает этот массив JSON, когда я делаю запрос.

"customers":[ 
    {"firstName":"Jason", "lastName":"Smith"}, 
    {"firstName":"Joan", "lastName":"Smith"}, 
    {"firstName":"Jennifer", "lastName":"Jones"} 
] 

Мой вопрос заключается в том, как разобрать этот массив JSON в ArrayList для использования позже.

Благодарим вас за продвижение.

+0

Возможный дубликат [Отправка и синтаксический анализ JSON объектов] (http://stackoverflow.com/ вопросы/2818697/send-and-parsing-json-objects) –

ответ

-1

Использовать библиотеки, такие как GSON или Jackson.

+0

Не отправляйте ссылку как ответ дорогой. !! –

1

Вы можете продолжить этот путь:

String jsonStr; // your JSON string 
JSONArray jsonArray = new JSONArray(jsonStr); 

for(int i = 0; i < jsonArray.length(); i++) { 
    JSONObject jsonObj = jsonArray.getJSONObject(i); 
    String firstname = jsonObj.getString("firstname"); 
    String lastname = jsonObj.getString("lastname"); 
} 
-1

Вы можете сделать, как это без GSON или Jackson

ArrayList<HashMap<String, String>> listCustomer= new ArrayList<HashMap<String,String>>(); 
    JSONArray jsonArray = new JSONArray(jsonStr); 

    for(int i = 0; i < jsonArray.length(); i++) { 
     HashMap<String, String> mapCustomer = new HashMap<String, String>(); 
     JSONObject jsonObj = jsonArray.getJSONObject(i); 

     mapCustomer.put("firstname", jsonObj.getString(firstname)); 
     mapCustomer.put("lastname", jsonObj.getString(lastname)); 

     listCustomer.add(mapCustomer); 

    } 
0

Использование GSON

 public class Customer{ 
      String firstName; 
      String lastName; 

      public static class List extends ArrayList<Customer>{ 

      } 
     } 
     public static Customer.List getCustomersList(String jsonString){ 
      Gson gson = new GsonBuilder().create(); 
      return gson.fromJson(jsonString, Customer.List.class); 
     } 
+0

Что делать, если я хочу разобрать json из ссылки? –

+0

Вам нужно написать задачу Async, чтобы получить строку, указанную здесь http://stackoverflow.com/a/15835425/1402525 – jaffa

1

Ваш список массив типа MyData

List<myData> listData = new ArrayList<myData>(); 
JSONArray jsonArray = new JSONArray("your response json string"); 

       for(int i = 0; i < jsonArray.length(); i++) { 
        JSONObject jsonObj = jsonArray.getJSONObject(i); 
        listData.add(new myData(jsonObj.getString("firstname"),jsonObj.getString("lastname"))); 
       } 
// your ArrayList is ready, and you can use it anytime. 

Ваша структура данных для Firstname и LastName

myData.java

public class myData { 
String firstName, lastName; 
myData(String fName, String lName) { 
    this.firstName = fName; 
    this.lastName = lName; 
} 
}