阅读Scala Play Framework中的JSON树结构
发布时间:2020-12-16 19:05:02 所属栏目:安全 来源:网络整理
导读:我正在尝试在Play Framework 2.1.3中处理Ajax POST请求. post数据是一个 JSON对象,其结构如下: { id: "a",name: "myname",kids : [{ id: "a1",name : "kid1",kids: []},{id: "a2",name: "kid2",kids: [{id: "aa1",name :"grandkid",kids: []}]}] 我想任意深
我正在尝试在Play Framework 2.1.3中处理Ajax POST请求. 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] Play在我写的格式上抛出错误: 类型不匹配;发现:controllers.Resources.Person必需:Array [controllers.Resources.Person] 我知道Play有一个Tree结构.我找不到关于如何将其与JSON读取联系起来的示例/文档. 任何帮助都非常感谢,谢谢 解决方法
你需要一个递归的val,比如:
implicit val jsonReads: Reads[Person] = ((__ "id").read[String] and (__ "name").read[String] and (__ "kids").read[Seq[Person]])(apply _) (我已经将集合类型从Array更改为Seq,因为它更通用,允许您在不影响下线代码的情况下更改实现.) 这是使用here记录的语法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |