IllegalStateException при разборе JSON - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь проанализировать файл JSON в моем приложении для Android.Я использую Retrofit и Gson.

Я получаю этот JSON с этого сайта:

http://api.nbp.pl/api/exchangerates/tables/a/?format=json

Это мой JSON:

[{
"table": "A",
"no": "023/A/NBP/2019",
"effectiveDate": "2019-02-01",
"rates": [{
    "currency": "bat (Tajlandia)",
    "code": "THB",
    "mid": 0.1190
}, {
    "currency": "dolar amerykański",
    "code": "USD",
    "mid": 3.7243
}, {
    "currency": "dolar australijski",
    "code": "AUD",
    "mid": 2.7027
}, {
    "currency": "dolar Hongkongu",
    "code": "HKD",
    "mid": 0.4745
}, {
    "currency": "dolar kanadyjski",
    "code": "CAD",
    "mid": 2.8334
}, {
    "currency": "dolar nowozelandzki",
    "code": "NZD",
    "mid": 2.5775
}, {
    "currency": "dolar singapurski",
    "code": "SGD",
    "mid": 2.7611
}, {
    "currency": "euro",
    "code": "EUR",
    "mid": 4.2706
}, {
    "currency": "forint (Węgry)",
    "code": "HUF",
    "mid": 0.013462
}, {
    "currency": "frank szwajcarski",
    "code": "CHF",
    "mid": 3.7509
}, {
    "currency": "funt szterling",
    "code": "GBP",
    "mid": 4.8588
}, {
    "currency": "hrywna (Ukraina)",
    "code": "UAH",
    "mid": 0.1352
}, {
    "currency": "jen (Japonia)",
    "code": "JPY",
    "mid": 0.034195
}, {
    "currency": "korona czeska",
    "code": "CZK",
    "mid": 0.1658
}, {
    "currency": "korona duńska",
    "code": "DKK",
    "mid": 0.5720
}, {
    "currency": "korona islandzka",
    "code": "ISK",
    "mid": 0.031036
}, {
    "currency": "korona norweska",
    "code": "NOK",
    "mid": 0.4416
}, {
    "currency": "korona szwedzka",
    "code": "SEK",
    "mid": 0.4114
}, {
    "currency": "kuna (Chorwacja)",
    "code": "HRK",
    "mid": 0.5756
}, {
    "currency": "lej rumuński",
    "code": "RON",
    "mid": 0.8999
}, {
    "currency": "lew (Bułgaria)",
    "code": "BGN",
    "mid": 2.1836
}, {
    "currency": "lira turecka",
    "code": "TRY",
    "mid": 0.7170
}, {
    "currency": "nowy izraelski szekel",
    "code": "ILS",
    "mid": 1.0257
}, {
    "currency": "peso chilijskie",
    "code": "CLP",
    "mid": 0.005679
}, {
    "currency": "peso filipińskie",
    "code": "PHP",
    "mid": 0.0714
}, {
    "currency": "peso meksykańskie",
    "code": "MXN",
    "mid": 0.1951
}, {
    "currency": "rand (Republika Południowej Afryki)",
    "code": "ZAR",
    "mid": 0.2809
}, {
    "currency": "real (Brazylia)",
    "code": "BRL",
    "mid": 1.0216
}, {
    "currency": "ringgit (Malezja)",
    "code": "MYR",
    "mid": 0.9092
}, {
    "currency": "rubel rosyjski",
    "code": "RUB",
    "mid": 0.0568
}, {
    "currency": "rupia indonezyjska",
    "code": "IDR",
    "mid": 0.00026716
}, {
    "currency": "rupia indyjska",
    "code": "INR",
    "mid": 0.052227
}, {
    "currency": "won południowokoreański",
    "code": "KRW",
    "mid": 0.003336
}, {
    "currency": "yuan renminbi (Chiny)",
    "code": "CNY",
    "mid": 0.5526
}, {
    "currency": "SDR (MFW)",
    "code": "XDR",
    "mid": 5.2070
}]
}]

Thisмоя ошибка:

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: ожидался BEGIN_OBJECT, но был BEGIN_ARRAY в строке 1 пути 2 столбца $

Мой класс:

class MainModel {

@SerializedName("table")
@Expose
var table: String? = null
@SerializedName("no")
@Expose
var no: String? = null
@SerializedName("effectiveDate")
@Expose
var effectiveDate: String? = null
@SerializedName("rates")
@Expose
var rates: List<Rate>? = null

}



class Rate {

@SerializedName("currency")
@Expose
var currency: String? = null
@SerializedName("code")
@Expose
var code: String? = null
@SerializedName("mid")
@Expose
var mid: Double? = null

}

Я сделал это, как на этой странице: http://www.jsonschema2pojo.org

Почему я получил это исключение?

...