scala json4s处理空值
我有一门案例课scala json4s处理空值,json,scala,json4s,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
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,因此无法使用“保留空字段”选项。能否完整粘贴您的异常?我无法再现错误。也许你可以发布你如何使用序列化程序?使用json4s native 2.11 v 3.2.10测试了以下内容:我检查了版本。3.2.10隐藏空值…他们在3.2.11中引入了一个新选项来保留空值。