Kotlin анализирует массив объектов, используя JSONParser от Gson

У меня эти классы написаны в kotlin, Location, а остальное – в Application.kt

@RealmClass open class Location( @PrimaryKey @SerializedName("id") var id: Int = 0, @SerializedName("city_name") var city_name: String? = null, @SerializedName("elevation") var elevation: Int = 0, @SerializedName("state_code") var state_code: String? = null, @SerializedName("state_name") var state_name: String? = null, @SerializedName("country_code") var country_code: String? = null, @SerializedName("country_name") var country_name: String? = null ):RealmObject() 

и остальное:

 private fun loadStuff() { val inputStream = this.resources.openRawResource(R.raw.city_json) val jsonReader = JsonReader(InputStreamReader(inputStream, "UTF-8")) val gson = Gson() Realm.getDefaultInstance().executeTransactionAsync(Realm.Transaction { realm -> val weatherList = gson.fromJson<List<Location>>(jsonReader , Array<Location>::class.java).toList() //realm.insertOrUpdate(location) jsonReader.endArray() jsonReader.close() }, Realm.Transaction.OnSuccess { Log.d("TAG", "Success") }) } 

и я продолжаю получать исключение:

 com.example.android.sunshine.data.Location[] cannot be cast to java.lang.Iterable 

Что я делаю не так ?

объект выглядит следующим образом:

 [ { "id":3040051, "city_name":"les Escaldes", "elevation":0, "state_code":"08", "state_name":"Parròquia d'Escaldes-Engordany", "country_code":"AD", "country_name":"Andorra" }, { "id":3041563, "city_name":"Andorra la Vella", "elevation":0, "state_code":"07", "state_name":"Parròquia d'Andorra la Vella", "country_code":"AD", "country_name":"Andorra" } ] 

Эта:

 List<Location> 

Список мест. Список реализует Iterable.

Эта:

 Array<Location> 

является массивом местоположения. Массив не реализует Iterable.

Различия больше, чем у него, но это его ошибка.

Этого было достаточно, чтобы поменять список с помощью массива и удалить .toList (), и он работал как магия