首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Klaxon解析包含Kotlin中枚举数组的JSON

用Klaxon解析包含Kotlin中枚举数组的JSON
EN

Stack Overflow用户
提问于 2018-03-07 21:05:28
回答 1查看 988关注 0票数 0

我对Kotlin并不熟悉,我试图从JSON中解析一个枚举数组:

代码语言:javascript
复制
val convertColor = object: Converter<Color> {
    override fun toJson(value: Color): String? = when(value) {
        Color.R -> "red"
        Color.G -> "green"
        Color.B -> "blue"
        else -> null
    }

    override fun fromJson(jv: JsonValue): Color = when(jv.inside) {
        "red" -> Color.R
        "green" -> Color.G
        "blue" -> Color.B
        else -> throw IllegalArgumentException("Invalid Color")
    }
}

enum class Color { R, G, B }
data class Root (val colors: Array<Color>)

然后,我尝试用以下方法解析一个示例:

代码语言:javascript
复制
val klaxon = Klaxon().converter(convertColor)
val result = klaxon.parse<Root>("""
{
    "colors": ["red", "green", "blue"]
}
""")

但是我得到了这个运行时异常:

代码语言:javascript
复制
Exception in thread "main" java.lang.IllegalArgumentException: array element type mismatch

似乎转换器没有应用于数组元素。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-07 22:29:23

如果您将Array替换为List,则可以使用该方法,建议使用:

代码语言:javascript
复制
data class Root(val colors: List<Color>)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49161179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档