class MyMapTypeAdapterFactory() : TypeAdapterFactory {
override fun <T : Any?> create(gson: Gson, typeToken: TypeToken<T>): TypeAdapter<T>? {
val type = typeToken.getType()
val rawType = typeToken.getRawType()
return if (!Map::class.java.isAssignableFrom(rawType)) {
null
} else Adapter(gson) as TypeAdapter<T>
}
class Adapter(): TypeAdapter<Map<String, Any>>()
{
private var keyTypeAdapter: TypeAdapter<String> = TypeAdapters.STRING
private lateinit var valueTypeAdapter: TypeAdapter<Any>
constructor(gson: Gson): this()
{
valueTypeAdapter = MyObjectTypeAdapter(gson)
}
override fun read(`in`: JsonReader): Map<String, Any>? {
val peek = `in`.peek()
if (peek == JsonToken.NULL) {
`in`.nextNull()
gson 默认把int 转double解决办法
最新推荐文章于 2023-03-30 00:59:04 发布