scala json4s处理空值

时间:2015-05-17 18:14:45

标签: json scala json4s

我有一个案例类

case class Test(a: String, b: Option[Double])

object TestSerializer extends CustomSerializer[Test] (format => ({
case jv: JValue =>
  val a = (jv \ "a").extract[String]
  val b = (jv \ "b").extractOpt
  Test(a, b)
},{
  case tst: Test =>
   tst.b match {
    case Some(x) => ("a" -> "test") ~ ("b" -> x)
    case None => ("a" -> "test") ~ ("b" -> "NA")
   }
}))

当b可用时,我得到的结果是:{a: "test", b: 1.0}

当b = None时,我得到的结果是:{a: "test"}

第二个结果在第一个部分函数中抛出异常,因为它找不到b。 如何确保我的代码不会失败,而是将json的缺失b值视为无?

我使用的是json4s 3.2.10而不是3.2.11,所以我不能使用preserveEmpty字段选项。

0 个答案:

没有答案