json - 在递归选项列表上进行惰性写入

标签 json scala playframework playframework-2.0

如何准备(play框架,scala)Json写入对象列表的选项,例如

case class Person(name: String, age: Int, relations: Option[List[Person]])

我尝试了以下写入

implicit val personWrites: Writes[Person] = (
    (__ \ "name").write[String] and
    (__ \ "age").write[Int] and
    (__ \ "relations").lazyWrite[Option[Writes.traversableWrites[Person](personWrites)]])(unlift(Person.unapply))

它不起作用,有人可以帮助我以正确的方式创建这些 Json 写入

最佳答案

你已经很接近了:

implicit val personWrites: Writes[Person] = (
  (__ \ "name").write[String] and
  (__ \ "age").write[Int] and
  (__ \ "relations").lazyWriteNullable(Writes.traversableWrites(personWrites)))(unlift(Person.unapply))

关于json - 在递归选项列表上进行惰性写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20168135/

相关文章:

ios - ionic 下拉IOS

java - 如何将参数添加到wiremock中的 stub 响应主体中?

jpa - 为 Vertica 数据库设置默认架构

java - Web 应用程序和请求身份验证

MySQL 5.7 - 查询以将 JSON 键的值设置为 JSON 对象

json - 如何在 Scala 中将 Map 序列化为 JSON?

configuration - 在 Scala 中处理属性

scala - 为伴随对象中的方法指定类型差异的正确方法是什么

docker - 为什么我的 Play Framework for Scala 应用程序的 Docker 镜像不以 AccessDeniedException 开头?

javascript - 从 json 数组中删除特定元素