我使用json4s和scala 2.11.12
exmaple json是:
{ "name": "joe",
"children": [
{
"name": "Mary",
"age": 5
},
{
"name": "Mazy",
"age": 3
}
]
}
当我想得到这个名字,而不是得到父名“joe”时,它给了我父母和孩子的所有名字(我使用json4s库http://json4s.org/)
compact(render(json \\ "name"))
它让我回复:
res2:String = {“name”:“joe”,“name”:“Mary”,“name”:“Mazy”}
我只需要{“name”:“joe”}
我只需要父名,如何只获得父名?
答案 0 :(得分:2)
val json = "..."
import org.json4s._
import org.json4s.native.JsonMethods._
val parent: JValue = json \ "name"
基于JSON4S的本机实现的\
方法将基于lift-json
,将在JSON对象中按名称查找字段值。请注意,您的json必须是JValue
才能执行此操作,因此从val jsonData: String
开始,您需要致电val json = Json.parse(jsonData)
以获取初始JValue
。
双反斜杠\\
方法将查找具有给定属性的JSON的所有子项,这就是为什么要返回整组JObject
个匹配项。