Разбор массивов в Json с использованием Gson - PullRequest
1 голос
/ 27 сентября 2019

Разбор массивов в json с использованием Gson.У меня есть следующий json и пытаюсь его проанализировать.

{
"success": true,
"message": "success message",
"data": [
    {
        "city": "cityname",
        "state": "statename",
        "pin": 0,
         "name" :{
                   "firstname" : "user"
                 },
         "id" :"emailid"
    }],
"status" : "done"
}

Итак, я создал классы pojo, используя http://www.jsonschema2pojo.org/

Теперь я хочу проанализировать массив для значения "city"«Вот как я это сделал, но не уверен, что здесь не так.

 Gson gson = new Gson();
 Records obj = gson.fromJson(response,Records.class);
 try {

     JSONArray jsonArray = new JSONArray(obj.getData());

     for(int i=0; i<jsonArray.length(); i++)
     {
          JSONObject object = jsonArray.getJSONObject(i);
          String city = object.getString("city");
          AlertDialog.Builder dialog = new AlertDialog.Builder(this);
          dialog.setMessage(city);
          dialog.show();

      }}

    catch (Exception e) {
            e.printStackTrace();
        }

И вот что getData () определено в классе модели:

public class Records {

//////
private ArrayList<Datum> data = null;
public ArrayList<Datum> getData() {
    return data;
}

1 Ответ

0 голосов
/ 27 сентября 2019

это не обязательно:

try {

 JSONArray jsonArray = new JSONArray(obj.getData());
 ...
}
   catch
...

вам просто нужно сделать

Records obj = gson.fromJson(response,Records.class);

, и тогда

obj.getData();

будет замечательно, если вы проверите, что getData() не равно NULL, поскольку что-то может пойти не так при десериализации


для получения города: используйте метод получения в классе Datum, в конце вы получите список этих объектов при вызове getData

public String getCity() {
return city;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...