我有一个带有根数组的JSON Assets :

[
  {
    "word": "word",
    "label": "label"
  },
  {
    "word": "word2",
    "label": "label2"
  }
]

我正在尝试使用Klaxon进行解析。

到目前为止,我已经尝试了几种方法:
val wordDict = Klaxon().parse<List<DictWord>>( activity.assets.open("dict.json") )

val wordDict = Klaxon().parse<Array<DictWord>>( activity.assets.open("dict.json") )

val wordDict = Klaxon().parse<JsonArray<DictWord>>( activity.assets.open("dict.json") )

导致空列表或异常:



我究竟做错了什么?

最佳答案

在Klaxon的GitHub问题板上找到答案:https://github.com/cbeust/klaxon/issues/87

数组解析是通过parseArray()完成的,因此解决方法是:

val wordDict = Klaxon().parseArray<DictWord>( activity.assets.open("dict.json") )

值得一提的是,仅通过流API支持数组解析,而不支持对象映射API。因此,我们只能提供InputStreamString作为参数。

09-25 21:46