【发布时间】:2019-09-16 05:37:02
【问题描述】:
假设我有一个简单的数据类
data class Car(var make: String)
和一个 Json 字符串
val json = "[{'make':'foo'}, {'make':'bar'}]"
当我使用Gson 反序列化字符串时
val carList : MutableList<Car> = gson.fromJson(json, Array<Car>::class.java).toMutableList()
它按预期工作。但是当我将Car中make的数据类型改为CharSequence
data class Car(var make: CharSequence)
使用 GsonBuilder
val builder = GsonBuilder()
builder.registerTypeAdapter(CharSequence::class.java, object : InstanceCreator<CharSequence> {
override fun createInstance(type: Type?): CharSequence {
return String()
}
})
gson = builder.create()
我收到了com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 11 path $[0].make
一直在努力使其与 CharSequence 类型一起工作,任何建议都表示赞赏。
【问题讨论】: