Tôi gặp sự cố khi tạo ánh xạ cho một json mà tôi muốn phân tích bằng cách sử dụng json. Nó rất cụ thể, về một tệp json với một mảng json với các đối tượng trong đó.Phân tích tệp json với gson
jsonfile của tôi bắt đầu như thế này:
[
{
"venue": {
"venue_seasons": [
{
"created_at": "2011-12-25T23:00:28Z",
"updated_at": "2011-12-28T15:13:53Z",
"start_timestamp": 1293840000,
"id": 337,
"end": "2011-12-24T00:00:00Z",
"enabled": true,
"start": "2011-01-01T00:00:00Z",
"season_openings": [ … ],
"end_timestamp": 1324684800
},
{ … }
],
"address": "someadress",
"city": "cityname",
"name": "name",
"created_at": "2011-03-31T07:55:33Z",
etcetera
}
"venue":{another venue
Vì vậy, lần đầu tiên một mảng, hơn một đối tượng (địa điểm) với rất nhiều đối tượng trong nó (i loại bỏ hầu hết trong số họ, vì thats không quan trọng đối với câu hỏi của tôi) và một số mảng (như season_openings).
Mã phân tích cú pháp của tôi hoạt động như thế này, tôi sử dụng gson. Inputstream hoạt động tốt.
Reader reader = new InputStreamReader(inputStream);
JsonResponse venueResponse = gson.fromJson(reader, JsonResponse.class);
List<Venues> results = venueResponse.venue;
với JsonResponse lớp:
public class JsonResponse {
public List<Venues> venue;
}
và Venues.class:
public class Venues {
public List<VenueSeasons> venue_seasons;
@SerializedName("adress")
public String getAdress;
@SerializedName("city")
public String getCity;
@SerializedName("country")
public String getCountry; etcetera
}
Nhưng khi tôi chạy mã này tôi nhận được một lỗi:
Unable to start activity ComponentInfo{com.hera.android.JSON/com.hera.android.JSON.TestParser2Activity}: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2
Ofcourse tôi có thể đọc lỗi: nó mong đợi một o bjects nhưng nhận được một mảng. Tôi đa dạng rất nhiều với jsonresponse.class khác nhau và thậm chí với việc đặt toàn bộ mảng json trong một đối tượng json (những gì không thực sự là một giải pháp vì tôi cần phải làm việc với loại jsonfile này). Nhưng mỗi khi tôi nhận được lỗi này hoặc một lỗi tương tự.
Tôi nghĩ rằng tôi gần với một giải pháp, bất cứ ai có thể nhìn thấy những gì tôi chỉ có thể không và cho tôi một bàn tay giúp đỡ? Cảm ơn.
Với JSON mẫu không hợp lệ và mã Java mẫu không hợp lệ không hoàn chỉnh, những người có thể cố gắng giúp đỡ còn lại đang đoán về những gì đang diễn ra. Đó là một phương pháp hay để đăng các ví dụ hoàn chỉnh tối thiểu thể hiện vấn đề đang cố gắng giải quyết. –