我使用json4s和scala 2.11.12
{ "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”}
我只需要父名称,如何获取唯一父名称?
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) 获取首字母 J价值 .
\
lift-json
JValue
val jsonData: String
val json = Json.parse(jsonData)
J价值
双反斜杠 \\ 方法将查找具有给定属性的JSON的所有子级,所以这就是为什么您要获取 JObject 匹配回。
\\
JObject