Joo*_*ost 6 json scala playframework playframework-2.0
我正在尝试在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: []}]}]
Run Code Online (Sandbox Code Playgroud)
我想任意深入地嵌入'儿童'.我想到的课程是这样的(我意识到递归可能有问题):
case class Person {
id: String,
name: String,
kids: Array[Person]
}
Run Code Online (Sandbox Code Playgroud)
我想到的格式:
implicit val personFormat:Format[Person] = Json.format[Person]
Run Code Online (Sandbox Code Playgroud)
Play在我写的格式上抛出错误:
类型不匹配; 发现:controllers.Resources.Person必需:Array [controllers.Resources.Person]
我知道Play有一个Tree结构.我找不到关于如何将其与JSON读取联系起来的示例/文档.
任何帮助都非常感谢,谢谢
Rob*_*een 10
你需要一个递归的val,比如:
implicit val jsonReads: Reads[Person] = ((__ \ "id").read[String] and (__ \ "name").read[String] and (__ \ "kids").read[Seq[Person]])(apply _)
Run Code Online (Sandbox Code Playgroud)
(我已经将集合类型从Array更改为Seq,因为它更通用,允许您在不影响下线代码的情况下更改实现.)
这是使用此处记录的语法.
归档时间: |
|
查看次数: |
1678 次 |
最近记录: |