Scala 用于理解的Lift-JSON中的非递归提取
我使用Lift-JSON进行理解来解析一些JSON。JSON是递归的,因此每个级别都存在字段Scala 用于理解的Lift-JSON中的非递归提取,scala,lift,for-comprehension,lift-json,Scala,Lift,For Comprehension,Lift Json,我使用Lift-JSON进行理解来解析一些JSON。JSON是递归的,因此每个级别都存在字段id。以下是一个例子: val json = """ { "id": 1 "children": [ { "id": 2 }, { "id": 3 } ] } """ 下面的代码 var ids = for { JObject(parent) <- parse(json) JField("id", JInt(id)) &l
id
。以下是一个例子:
val json = """
{
"id": 1
"children": [
{
"id": 2
},
{
"id": 3
}
]
}
"""
下面的代码
var ids = for {
JObject(parent) <- parse(json)
JField("id", JInt(id)) <- parent
} yield id
println(ids)
var id=for{
JObject(parent)我还没有深入研究为什么默认理解是递归的,但是您可以通过简单地限定搜索根来解决这个问题:
scala> for ( JField( "id", JInt( id ) ) <- parent.children ) yield id
res4: List[BigInt] = List(1)
scala>for(JField(“id”,JInt(id))我还没有深入研究为什么默认理解是递归的,但是您可以通过简单地限定搜索根来解决这个问题:
scala> for ( JField( "id", JInt( id ) ) <- parent.children ) yield id
res4: List[BigInt] = List(1)
scala>for(JField(“id”,JInt(id))