Парсинг JSON с помощью библиотеки GSON JAVA

184
30 октября 2018, 02:20

С недавнего времени решил познать работу с JSON, собственно при парсинге

{
"code": 10,
"fly": "ms-vl",
"text": [
    "Trans MS - VL"
]
}

все получается, но вот с кодом ниже не выходит

Имеется JSON ответ:

{
  "fly": [
     "ms-vl",
     "vl-rz",
     "rz-ms",
   ],
   "city": {
     "ms": "Москва",
     "vl": "Волгоград",
     "rz": "Рязань",
   }
}

Пытаюсь парсить ответ с помощью GSON:

GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
GetCityInf inf = gson.fromJson(textss, GetCityInf.class);
System.out.println(inf);

Класс GetCityInf:

public class GetCityInf {
private GetFly fly;
private GetCity city;

public GetCityInf(){
}
public GetCityInf(GetFly fly, GetCity city){
    this.fly = fly;
    this.city = city;
}
  @Override
public String toString(){
   return "GetInform: fly - "+ fly + " city - " + city;
}
}

Класс GetFly:

public class GetFly {
String[] ArrayFly = null;

public GetFly(){
}
public GetFly(String[] fly){
    this.ArrayFly = fly;
}
public String GetFlyArray(){ return ArrayFly+"";}
}

Класс GetCity:

import java.util.HashMap;
public class GetCity {
HashMap<String, String> ArrayCity = null;

public GetCity(){
}
public GetCity(HashMap<String, String> array){
    this.ArrayCity = array;
}
public String GetCityArray() {
    return ArrayCity+"";
}

}
Answer 1

Следующий класс больше подойдет для десериализации вашего JSON-значения:

@Getter @Setter @NoArgsConstructor
public class GetCityInf {
  private List<String> fly;
  private Map<String, String> city;
}
Answer 2

У вас JSON неверный, надо писать так:

{
  "fly": [
     "ms-vl",
     "vl-rz",
     "rz-ms"  //уберите запятую (в json комментарии запрещены, правда)
   ],
   "city": {
     "ms": "Москва",
     "vl": "Волгоград",
     "rz": "Рязань"  //уберите запятую (в json комментарии запрещены, правда)
   }
}

P.S. Для проверки корректности json используйте онлайн чекеры - типа такого

READ ALSO
JSF + ajax обновление таблицы

JSF + ajax обновление таблицы

есть таблица где напротив каждой строки есть кнопка удалитьнужно использовать ajax чтобы обновлялась таблица с убранной строкой

155
Развертывание приложения на Tomcat

Развертывание приложения на Tomcat

Web-приложение развернуто на TomcatПроблема такова у некоторого количества пользователей плохой интернет, томкат сбрасывает соединение у таких...

188
Вопрос теоретический. Картинка или css код?

Вопрос теоретический. Картинка или css код?

Суть вопроса такова: как будет лучше для браузера, поисковика, кода и вообще в целом, как лучше вставлять мелкие элементы - как картинку или...

163
Обрезать нижнюю часть блока

Обрезать нижнюю часть блока

Есть блок определенной высотыКак мне обрезать нижнюю часть блока на 50px (содержимое блока, которое входит в эти 50px, должно быть обрезано)? Возможно...

175