Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
scala json4s处理空值_Json_Scala_Json4s - Fatal编程技术网

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中引入了一个新选项来保留空值。