我想从OpenStreetMap的nominatim中解析JSON。
例子这是一个列表,我不知道如何描述这个列表。我正在使用Gson,这些是我的数据类:
data class Destination(
val lat: Double,
val lon: Double,
val display_name: String
)
这是我的Gson实现:
val list = Gson().fromJson<List<Destination>>(
body,
Destination::class.java
)
它给了我这个错误:
java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
但是我在我的Gson实现中声明了一个数组。有人知道怎么解决这个问题吗?
您可以将其反序列化如下:
val type = object : TypeToken<List<Destination>>() {}.type
Gson().fromJson<List<Destination>>(body, type)
与这个问题中提到的相似
我明白了,你必须使用Array
,而不是List
:
val list : Array<Destination> = Gson().fromJson(
body,
Array<Destination>::class.java
)