Я пытаюсь проанализировать файл 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
Почему я получил это исключение?