JSON не разбирает arraylist в Android - PullRequest
0 голосов
/ 17 мая 2018

Я использую залп в первый раз, и мой ответ JSON не будет обработан для моего архива.Все выглядит правильно для меня.

Вот как был объявлен arraylist.

 ArrayList<TrigNumbersModel> numbersList = new ArrayList<>();

Это метод, который получает JSON:

 public  void fetchJson(final String subID){
    final RequestQueue requestQueue = Volley.newRequestQueue(TrigNumbers.this);

    StringRequest myRequest = new StringRequest(
            Request.Method.GET,
            URL_STRING + "?sub_id=" + subID,
            new com.android.volley.Response.Listener<String>() {

                @Override
                public void onResponse(String response) {

                    try {
                        JSONArray jsonArray = new JSONArray(response);
                        numbersList.clear();
                        for(int i=0;i<jsonArray.length();i++){
                            JSONObject jo = jsonArray.getJSONObject(i);
                            outter(jo.toString());
                            TrigNumbersModel trigNumbersModel = new TrigNumbersModel();
                            trigNumbersModel.setTrigNo(jo.getString("phone"));
                            outter(jo.getString("phone"));
                            numbersList.add(trigNumbersModel);

                        }
                        adapter.notifyDataSetChanged();
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                }
            },
            new com.android.volley.Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    outter("" + error);


                }
            }) ;
    requestQueue.add(myRequest);
}

И этомой класс объектов

public class TrigNumbersModel {

@SerializedName("triggerNumber")
String trigNo;

public TrigNumbersModel(String trigNo) {
    this.trigNo = trigNo;

}

public TrigNumbersModel() {
}

public String getTrigNo() {
    return trigNo;

}

public void setTrigNo(String trigNo) {
    this.trigNo = trigNo;
}

}

Это мой формат JSON

[{"id":"4866","phone":"233243602185","subscription_id":"HJ5559","cutomer_id":"20"}]

1 Ответ

0 голосов
/ 17 мая 2018

Вы можете использовать Google Gson для преобразования json в соответствующий список объектов.

TypeToken<List<TrigNumbersModel>> token = new TypeToken<List<TrigNumbersModel>>() {};
List<TrigNumbersModel> animals = gson.fromJson(data, token.getType());

А это ваш модельный класс.

public class TrigNumbersModel {

private String id;
private String phone;
private String subscriptionId;
private String cutomerId;

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getPhone() {
return phone;
}

public void setPhone(String phone) {
this.phone = phone;
}

public String getSubscriptionId() {
return subscriptionId;
}

public void setSubscriptionId(String subscriptionId) {
this.subscriptionId = subscriptionId;
}

public String getCutomerId() {
return cutomerId;
}

public void setCutomerId(String cutomerId) {
this.cutomerId = cutomerId;
}

}

и на уровне вашего приложения build.gradle

dependencies {
    implementation 'com.google.code.gson:gson:2.8.4'
}
...