我尝试使用gson fromJson,但每次都得到这个print => Countries(countries=null)。我错过了什么?
//代码
data class Countries(val countries: Map<String, List<String>>)
val jsonString = """
{
"Afghanistan": [
"Herat",
"Kabul",
"Kandahar",
"Molah",
"Rana",
"Shar",
"Sharif",
"Wazir Akbar Khan"
],
"Albania": [
"Elbasan",
"Petran",
"Pogradec",
"Shkoder",
"Tirana",
"Ura Vajgurore"
]
}
""".trimIndent()
val countries = Gson().fromJson(jsonString, Countries::class.java)
println(countries)
2条答案
按热度按时间zbdgwd5y1#
确定类型
GSON解析
byqmnocz2#
找不到
countries
键。这里基本上有三种选择。1.你可以修改json本身:
1.或者,您可以更改您要实体化的实体(例如,使用
object : TypeToken<Map<String, List<String>>>() {}.type
作为第二个参数)。1.另一种选择是为现有的json和
Countries
类创建一个自定义编译器,如下所示:使用
GsonBuilder().registerTypeAdapter(Countries::class.java, countriesDeserializer).create()
而不是简单的Gson()