Как разобрать ниже JSON ответ? - PullRequest
0 голосов
/ 15 апреля 2019
{
    "status": true,
    "data": {
        "1": "Business People",
        "2": "Actors",
        "3": "Musicians",
        "4": "Sports People",
        "5": "Artists",
        "6": "Politicians"
    },
    "message": "Get data successfully."
}

Я хочу разобрать вышеуказанный JSON.

Заранее спасибо

Ответы [ 5 ]

1 голос
/ 15 апреля 2019

Я думаю, что не стоит хранить числа в качестве ключа в вашем объекте, Я советую вам использовать JsonArray

{
 "status":true,
 "message":"Get data successfully.",
 "data":[ "Business People", "Actors", "Musicians", "Sports People", "Artists" 
 ,"Politicians"]
}

, а затем использовать JsonArray для анализа данных

0 голосов
/ 15 апреля 2019

Посетите этот сайт https://quicktype.io/, это поможет вам в создании моделей Java.

Теперь сериализуйте и десериализуйте JSON с помощью GSON.

Добавьте следующую зависимость реализация 'com.google.code.gson: gson: 2.8.5'

Вот пример:

общественный автомобиль от Json () {

String json = "{\"brand\":\"Jeep\", \"doors\": 3}";
Gson gson = new Gson();
Car car = gson.fromJson(json, Car.class);
return car;

}

0 голосов
/ 15 апреля 2019

Вы можете использовать удобный сервис , который генерирует вашу Java-модель.

Тогда просто используйте Gson для сериализации-десериализации json.

Однако в вашем случае это "1", «2», «3» и т. Д. Могут быть фиксированными параметрами или динамической картой.

0 голосов
/ 15 апреля 2019

Я предлагаю использовать Klaxon для разбора JSON https://github.com/cbeust/klaxon

Действительно простое использование:

Klaxon().parse<yourClass>(yourJsonAsString)

где yourClass - это класс данных с вашими потребностями в разборе. См. Документацию Klaxon для каждого из ваших потребностей. Прокомментируйте, если вам нужна помощь.

0 голосов
/ 15 апреля 2019

Измените ваши данные на JSONArray как набор JSONObject для выполнения динамической работы

 JSONObject json = new JSONObject(your_string)
 JSONArray  data = json.getJsonArray("data");

 for(int i = 0;i<data.length();i++)
  {
   JSONObject item = data.getJSONObject(i);
   String itemString = item.getString(Integer.parseInt(i+1));
 /// do whatever you want ie : add itemString to a list
  }
...