【发布时间】:2020-12-12 02:19:43
【问题描述】:
我正在使用 Scala 的 uPickle 来解析这个 JSON:
{ "somevalue": 1, "revenue": [], "boost": { ... } }
问题是“收入”有时是一个对象,有时是一个空数组。如果是空数组,则表示该值不存在(应该为null或不存在,但我没有生成这个json,所以我必须适应)。
是否有可能说服 uPickle 在它期望 Map[_,_] 并获得一个空的 序列 时发出一个空对象?我想像这样为上面的 json 声明一个案例类:
case class MyObject {
val somevalue: Int,
val revenue: Map[String, RevenueChildItem],
val boost: Map[String, BoostChildItem],
}
目前 uPickle 将中止并出现错误“期望对象,得到序列”。
我也许可以在解析之前对 JSON 文件进行预处理,但首先我想知道 uPickle 是否能够做这样的事情?
我知道我可能可以使用自定义pickler 来做到这一点,但是我有几十个结构要解析,每个结构都有相同的规则(即空对象的空序列),真的最好以更通用的方式进行,并自动将其应用到任何地方。
【问题讨论】: