代码之家  ›  专栏  ›  技术社区  ›  user504909

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

  •  1
  • user504909  · 技术社区  · 10 年前

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

    我只需要父名称,如何获取唯一父名称?

    1 回复  |  直到 10 年前
        1
  •  2
  •   flavian    10 年前
    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价值 .

    双反斜杠 \\ 方法将查找具有给定属性的JSON的所有子级,所以这就是为什么您要获取 JObject 匹配回。

    推荐文章