如何将Gson类型适配器转换为Klaxon类型适配器
所以我以前有typeAdapters
安装程序来解析我的json
使用Gson
但我试图转换为Android开发Kotlin
。 我相对比较新的Android,所以我不明白所有的细微差别(主要是iOS),所以我有这样的东西
class GsonTypeAdapter(gson: Gson) : TypeAdapter<ChartInfo>() { private val mIntegerAdapter: TypeAdapter<Int> init { mIntegerAdapter = gson.getAdapter(Int::class.java) } @Throws(IOException::class) override fun read(jsonReader: JsonReader): ChartInfo? { var jsonChartInfo: ChartInfo? = null if (jsonReader.peek() != JsonToken.NULL && jsonReader.peek() == JsonToken.BEGIN_OBJECT) { jsonChartInfo = ChartInfo() jsonReader.beginObject() while (jsonReader.hasNext()) { val name = jsonReader.nextName() if (jsonReader.peek() == JsonToken.NULL) { jsonReader.skipValue() continue } when (name) { "valueSize" -> jsonChartInfo.valueSize = mIntegerAdapter.read(jsonReader) else -> { jsonReader.skipValue() } } } jsonReader.endObject() } return jsonChartInfo } @Throws(IOException::class) override fun write(jsonWriter: JsonWriter, chartInfo: ChartInfo) { jsonWriter.beginObject() jsonWriter.name("valueSize") mIntegerAdapter.write(jsonWriter, chartInfo.valueSize) jsonWriter.endObject() } }
我试图转换为使用Klaxon,这样我就可以利用optionals,但是挂上了它的实现。 从README我已经想出了这个,但不知道如何做Write
功能。
val gson = GsonBuilder() .registerTypeAdapter<ChartInfo> { write { beginObject() value(it.valueSize) endObject() } read { beginObject() val valueSize = // I dont know how to reference the object correctly. } } }
这对我来说都是新鲜的东西,对于android开发来说也是比较新的,所以没有太多的东西。 任何意见表示赞赏。
- 如何在Kotlin中创建一个打开新的活动(Android Studio)的按钮?
- 与房间的多对多关系导致错误:实体和Pojos必须有一个可用的公共构造函数
- “subs”类型的项目不能被使用。 回应:-1010:消费尝试无效
- 即时应用基本功能的Application.onCreate()永远不会被调用
- Android从Gradle和Kotlin的各种错误
- 不幸的是,该应用程序已停止Android工作室,并没有错误
- kotlin-kapt插件不使用“kapt.generateStubs”
- 如何在kotlin中使用Android支持typedef注释?
- 如何使用ContextWrapper类与subscribeWith