Tôi có mảng json này:Không thể phân tích mảng Json sử dụng 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
}
]
Và tôi có lớp này để giữ dữ liệu:
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;
}
}
Tôi đang cố gắng để chuyển đổi thành một json danh sách MapData đối tượng:
Type type = new TypeToken<List<MapData>>(){}.getType();
return gson.fromJson(jsonString, type);
Nhưng tôi nhận được lỗi này:
java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to com.deliveries.models.MapData
Tôi đang làm gì sai?
Loại tẩy xoá này. Gson biết rằng anh ta phải deserialize java.util.List, nhưng không có ý tưởng, những gì các đối tượng nên ông đưa vào nó, vì vậy ông sử dụng các loại nội bộ. –
@ ŁukaszLech - nhưng tôi đã nói với nó rằng một Danh sách và theo tài liệu Gson đó là cách để làm điều đó ?! –
Tomer
Phương thức của bạn có trả về 'MapData' hoặc' Danh sách '? Tôi nghi ngờ bạn có thể trả lại loại sai. –