【发布时间】:2018-09-01 21:36:34
【问题描述】:
如何使用 play json OFormat 宏来获取选项列表?
val text = """[{"name": "John", "age": 30}, null, {"name": "Steve", "age": 34}]"""
import play.api.libs.json.Json
case class Person(name: String, age: Int)
implicit val personFormat = Json.format[Person]
val data = Json.parse(text).validate[List[Option[Person]]]
// Error: No Json deserializer found for type List[Option[Person]]. Try to implement an implicit Reads or Format for this type.
作为一种解决方法,我正在执行以下操作:
val data = Json.parse(text).as[Array[JsValue]].toList.map {
case JsNull => None
case x => Some(x.validate[Person].get)
}
println(data)
// List(Some(Person(John,30)), None, Some(Person(Steve,34)))
如果没有这种解决方法,我如何仅使用 OFormat 宏来实现相同的效果?
【问题讨论】:
-
您需要添加
import play.api.libs.json._。 -
这并不能解决问题;我仍然遇到同样的错误。
标签: json scala playframework-2.0