Scalatra命令和验证嵌套对象

Scalatra命令和验证嵌套对象,scala,scalatra,Scala,Scalatra,我对Scala和Scalatra都是新手。我只是想知道,如何使用Scalatra命令来验证嵌套对象,例如下面的图像,作为验证整个对象的一部分 { "id" : 1, "name" : "First item", "images": [ { "src" : "first_image.jpg" }, { "src" : "second_image.jpg" }, { "src" : "third_image.jpg" } ] } 从源代码来看,似乎只支持

我对Scala和Scalatra都是新手。我只是想知道,如何使用Scalatra命令来验证嵌套对象,例如下面的图像,作为验证整个对象的一部分

{ "id" : 1,
  "name" : "First item",
  "images": [
    { "src" : "first_image.jpg" },
    { "src" : "second_image.jpg" },
    { "src" : "third_image.jpg" }    
  ]
}

从源代码来看,似乎只支持简单值的嵌套提取。详情如下

您可以使用嵌套路径从Json中提取值:

  val name: Field[String] = asType[String]("keyword.name")
这将从此json中提取“测试”:

{keyword:{name:'test'}}
您可以在org.scalatra.json.JsonValueReader类中查找此提取的代码。该读取器用于org.scalatra.commands.Command.bindTo方法

关键来源是:

...
      val result = b.field.valueSource match {
        case ValueSource.Body => fieldBinding(data.read(name).right.map(_ map (_.asInstanceOf[fieldBinding.S])))
...
在JValue对象上实现了调用“\ u.asInstanceOf[fieldBinding.S]”。此提取仅适用于简单类型(请检查此问题:)