Как решить сложный JSON и поместить его в список в список, используя Retrofit - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть JSON, как показано ниже

{
"status" : "succesfull",
"items": [
    {
        "id" : "1",
        "name": "apple",
        "counrty": "USA"
    },
    {
        "id": "2",
        "name": "banana",
        "country": "Jamaica"
    },
    {
        "id":"3",
        "name": "potatoes",
        "counrty": "Belarus"
    },
    ...
   ]
  }

Допустим, страна различна, и я не знаю, какие страны будут в списке

Iнеобходимо составить список, как показано ниже:

enter image description here

Любые решения будут оценены

public class Response {
  String status;
  ArrayList<Items> items;      
}



public class Items{
   String id;
   String name;
   String country;
}

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Привет, Впереди,

Поместите свой JSON в любой анализатор JSON, как здесь http://www.jsonschema2pojo.org/
Чем вам нужно выбрать Parcelable / Serializable, и вы получите автоматически сгенерированные классы POJO.
Затем вам нужно настроить экземпляр модификации с помощью okHttp / gson, создать интерфейс dao, где вы реализуете все свои методы для вызова JSON.

0 голосов
/ 18 ноября 2018

Вы можете сделать это таким образом (извините за плохое форматирование). Убедитесь, что добавили методы getter / setter в свой класс структуры.

JSONObject jsonObj = new JSONObject(responseString);
Response response = new Response();

if(jsonObj.has("status")){ 
response.setStatus(jsonObj.getString("status"));
}

if(jsonObj.has("items")) {
 JSONArray array = jsonObj.getJSONArray("items");
 ArrayList<Items> list =new ArrayList();

for(i=0;i<array.length;i++){ 
     JSONObject json = array.get(i); 
     Items item = new Items();
     item.setId(json.getString("id"));
     item.setName(json.getString("name"));
     item.setCountry(json.getString("country"));
     list.add(item);
}
}
response.setItems(list);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...