如何获取json父属性,而不是在json4s中获取所有相同的属性名称

时间:2016-08-23 04:48:43

标签: json scala

我使用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”}

我只需要父名,如何只获得父名?

1 个答案:

答案 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个匹配项。