Scala 仅使用json4s获取直接子对象中的字段
我有一个类似这样的Json,我使用json4s parseJson方法解析了它:Scala 仅使用json4s获取直接子对象中的字段,scala,json4s,Scala,Json4s,我有一个类似这样的Json,我使用json4s parseJson方法解析了它: { "id":123, "item1":[ { "id":"234", "item2":[ { "id":"456" } ] } ] }
{
"id":123,
"item1":[
{
"id":"234",
"item2":[
{
"id":"456"
}
]
}
]
}
我只想获取item1的id,而不是item2。如何使用json4s实现这一点
如果我使用json \“id”,我也会得到item2的id。你可以
杰克逊的\
操作符,如下所示:
import org.json4s._
import org.json4s.jackson.JsonMethods._
var json = parse("""{"id":123,"item1":[{"id":"234","item2":[{"id":"456"}]}]}""").asInstanceOf[JObject]
json \\ "item1" \\ "id"
//Result: JObject(List((id,JString(234)), (id,JString(456))))
json \ "item1" \ "id"
//Result: JArray(List(JString(234)))
您可以jackson的\
操作符,如下所示:
import org.json4s._
import org.json4s.jackson.JsonMethods._
var json = parse("""{"id":123,"item1":[{"id":"234","item2":[{"id":"456"}]}]}""").asInstanceOf[JObject]
json \\ "item1" \\ "id"
//Result: JObject(List((id,JString(234)), (id,JString(456))))
json \ "item1" \ "id"
//Result: JArray(List(JString(234)))
这种方法的问题是嵌套对象的名称可以是任何东西,而不仅仅是item1。这种方法的问题是嵌套对象的名称可以是任何东西,而不仅仅是item1。