gpt4 book ai didi

json - 在 Scala Play Framework 中读取 JSON 树结构

转载 作者:行者123 更新时间:2023-12-04 13:40:06 25 4
gpt4 key购买 nike

我正在尝试在 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: []}]}]

我想把' child '嵌套得任意深。我想到的类(class)是这样的(我意识到递归可能有问题):
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 有一个树结构。我找不到有关如何将其与 JSON 读取联系起来的示例/文档。

非常感谢任何帮助,谢谢

最佳答案

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

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

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

这是使用记录的语法 here .

关于json - 在 Scala Play Framework 中读取 JSON 树结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19609639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com