在Scala Play框架中阅读JSON树结构

乔斯特

我正在尝试在Play Framework 2.1.3中处理Ajax POST请求。发布数据是一个JSON对象,并具有以下树状结构:

{ id: "a", name: "myname", kids : [{ id: "a1", name : "kid1", kids: []}, {id: "a2", name: "kid2", kids: [{id: "aa1", name :"grandkid", kids: []}]}]

我想将“孩子”任意套牢。我要记住的类是这样的(我意识到递归性可能是有问题的):

case class Person {
  id: String,
  name: String,
  kids: Array[Person]
}

我会想到的格式:

implicit val personFormat:Format[Person] = Json.format[Person]

播放在我编写的格式上引发错误:

类型不匹配; 找到:controllers.Resources.Person所需:Array [controllers.Resources.Person]

我知道Play具有树形结构。我找不到有关如何将其绑定到JSON读取的示例/文档。

感谢您的任何帮助,谢谢

罗宾·格林

您将需要一个递归值,例如:

implicit val jsonReads: Reads[Person] = ((__ \ "id").read[String] and (__ \ "name").read[String] and (__ \ "kids").read[Seq[Person]])(apply _)

(我将集合类型从Array更改为Seq,因为它更通用,并且允许您在不影响下行代码的情况下更改实现。)

这使用此处记录的语法

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Scala Play框架中阅读JSON树结构

来自分类Dev

Scala Play Json阅读

来自分类Dev

scala play框架json转换

来自分类Dev

Scala部署中的Play框架

来自分类Dev

Scala Play框架'更新'JSON数组

来自分类Dev

使用Play中的Scala模板!scala.js中的框架

来自分类Dev

使用Play中的Scala模板!scala.js中的框架

来自分类Dev

Play框架路线中的Scala反引号

来自分类Dev

Play 框架中的 Scala 依赖注入

来自分类Dev

阅读Play for Scala中的application.conf配置

来自分类Dev

如何在Scala中解析Play框架2.2中的JSON列表或数组

来自分类Dev

Play2.2.1框架中的Json Scala对象序列化

来自分类Dev

JSON在Play框架(Scala)中使用硬编码值读取

来自分类Dev

scala 中的结构类型

来自分类Dev

从Spring框架迁移到Play框架(Scala)

来自分类Dev

在带有Scala的Play框架中合成“ Future”结果

来自分类Dev

Play框架:如何在Scala中定义可写对象?

来自分类Dev

如何在Play框架中调用main.scala.html

来自分类Dev

如何使用Play框架(scala)在HTML中打印@符号

来自分类Dev

异步任务未在play框架中完成(scala)

来自分类Dev

使用Play框架模板中的Scala列表填充Javascript数组

来自分类Dev

如何通过Play框架中的Scala连接到Cassandra

来自分类Dev

使用Play框架模板中的Scala列表填充Javascript数组

来自分类Dev

Scala Play JSON读取中的常量值

来自分类Dev

如果Play / Scala JSON解析中的语句?

来自分类Dev

在scala / play中解析“ stringified” JSON

来自分类Dev

Scala Play Json中的数组的JsPath

来自分类Dev

在Play / Scala中遍历多个JSON数组

来自分类Dev

推荐的Scala Play 2.4授权框架