我是Scala和Scalatra的新手。我只是想知道,如何使用Scalatra命令来验证嵌套对象,例如下面的图像作为整个对象验证的一部分?
{ "id" : 1,
"name" : "First item",
"images": [
{ "src" : "first_image.jpg" },
{ "src" : "second_image.jpg" },
{ "src" : "third_image.jpg" }
]
}发布于 2014-01-14 19:19:24
从源代码看,似乎只支持简单值的嵌套提取。详情见下文。
您可以使用嵌套路径从Json中提取值:
val name: Field[String] = asType[String]("keyword.name")这将从这个json中提取出'test‘:
{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对象上实现_.asInstanceOffieldBinding.S调用。这个提取只适用于简单类型(检查这个问题:How to parse JSON in Scala using standard Scala classes?)。
https://stackoverflow.com/questions/17215330
复制相似问题