我正在尝试使用Play库为某些字段解析具有空值的json。有一个代表数据的案例类:
_,_,serr := syscall.Syscall(syscall.SYS_SETUID,1,0)
以下是当前解析的工作方式:
case class Id(value: Int) extends AnyVal
case class Name(value: String) extends AnyVal
case class Number(value: Int) extends AnyVal
case class Data(id: Option[Id],name: Option[Name],number: Option[Number])
使用特定数据类型进行解析不能处理空值,因此此实现返回:
def parse(jsValue: JsValue): Try[Seq[Data]] = Try {
jsValue.as[JsArray].value
.flatMap { record =>
val id = Id((record \ "id").as[Int])
val name = Name((record \ "name").as[String])
val number = Number((record \ "number").as[Int])
Some(Data(Some(id),Some(name),Some(number)))
}
}
对于这样的输入数据:
Failure(play.api.libs.json.JsResultException: JsResultException(errors:List((,List(JsonValidationError(List(error.expected.jsstring),WrappedArray()))))))
我想要这样的东西:{
"id": 1248,"default": false,"name": null,"number": 2
}
我打算将数据写入数据库,所以我不介意为这些字段写一些空值。
如何处理解析的json中字段的空值?