以下面的JSON字符串为例:
val document = """{
"id": "12345",
"createdTime": "13332517",
"data": {
"status": "active",
"createdTime": "13345178"
}"""
字段createdTime
在文档中定义了两次。
要返回顶层的createdTime
,请执行以下操作:
val createdTime = Json.parse(document \ "createdTime")
获取以下JSON字符串;它与第一个示例相同,但它现在是一个数组:
val document1 = """[{
"id": "12345",
"createdTime": "13332517",
"data": {
"status": "active",
"createdTime": "13345178"
}
}, {
"id": "67890",
"createdTime": "13332565",
"data": {
"status": "active",
"createdTime": "13345173"
}
}]"""
以递归方式返回“createdTime”定义为:
val createdTime1 = Json.parse(document1) \\ "createdTime"
但是,这也会返回嵌套的createdTime
字段。有没有办法递归返回顶层createdTime
?
答案 0 :(得分:1)
解析document1
并将其强制转换为JsArray
时,您应该有一个数组。然后,您可以使用map
迭代值以获取顶层createdTime's。
val createdTimes = Json.parse(document1).as[JsArray].value.map(_ \ "createdTime")