mam tej tablicy json:Nie można analizować JSON tablicę używając Gson
[
{
"id":18,
"city":"הרצליה",
"street":"החושלים 1",
"zipcode":121209,
"state":"IL",
"lat":32.158138,
"lng":34.807838
},
{
"id":19,
"city":"הרצליה",
"street":"אבא אבן 1",
"zipcode":76812,
"state":"IL",
"lat":32.161041,
"lng":34.810410
}
]
i mam tej klasy do przechowywania danych:
public class MapData {
private int id;
private String city;
private String street;
private String state;
private int zipcode;
private double lat;
private double lng;
public MapData(int id, String city, String street, String state,
int zipcode, double lat, double lng) {
this.id = id;
this.city = city;
this.street = street;
this.state = state;
this.zipcode = zipcode;
this.lat = lat;
this.lng = lng;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public int getZipcode() {
return zipcode;
}
public void setZipcode(int zipcode) {
this.zipcode = zipcode;
}
public double getLat() {
return lat;
}
public void setLat(double lat) {
this.lat = lat;
}
public double getLng() {
return lng;
}
public void setLng(double lng) {
this.lng = lng;
}
}
Próbuję przekonwertować json do Lista rzecz firmy MapData obiektów:
Type type = new TypeToken<List<MapData>>(){}.getType();
return gson.fromJson(jsonString, type);
ale pojawia się ten błąd:
java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to com.deliveries.models.MapData
Co robię źle?
Rodzaj skasowaniem. Gson wie, że musi deserializować java.util.List, ale nie ma pojęcia, jakie obiekty powinien w nim umieścić, więc używa wewnętrznych typów. –
@ ŁukaszLech - ale powiedziałem, że jest to lista i według dokumentów Gsona to sposób na zrobienie tego ?! –
Tomer
Czy twoja metoda zwraca 'MapData' lub' List '? Podejrzewam, że możesz zwrócić niewłaściwy typ. –