С недавнего времени решил познать работу с 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+"";
}
}
Следующий класс больше подойдет для десериализации вашего JSON-значения:
@Getter @Setter @NoArgsConstructor
public class GetCityInf {
private List<String> fly;
private Map<String, String> city;
}
У вас JSON неверный, надо писать так:
{
"fly": [
"ms-vl",
"vl-rz",
"rz-ms" //уберите запятую (в json комментарии запрещены, правда)
],
"city": {
"ms": "Москва",
"vl": "Волгоград",
"rz": "Рязань" //уберите запятую (в json комментарии запрещены, правда)
}
}
P.S. Для проверки корректности json используйте онлайн чекеры - типа такого
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости