scala json4s使用可选/可空字段创建json抛出异常

时间:2016-08-14 09:31:26

标签: scala parser-combinators json4s

我对scala和函数式编程很新。我有一段代码由一个用json4s库构建json的人编写,

val json = "body" -> ...toList.map {
  case (title, attrs) =>
    ("name", tag) ~ ("attributes", attrs)
}
val finalJson = compact(render(json))

我看到这一切时就明白了,它构建了一个带有给定字段的json。

如果attrs具有值,那么它构造带有名称和属性的json body。 但是如果attrs为空,那么我将低于异常。

java.lang.NullPointerException:
  at org.json4s.JsonDSL$class.map2jvalue(JsonDSL.scala:71)
  at org.json4s.JsonDSL$.map2jvalue(JsonDSL.scala:61)

搜索了几篇帖子,无法掌握如何让它发挥作用。 我得到的最近的是this post

我想我必须使用NoneOption。如果我误解了某些内容,任何关于如何解决这个问题以及可能解释的想法都会非常有用。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用getOrElse,如下所示:

byte[]