我使用lift-json 2.3和Scala 2.8.1来操作json文档。在下面的文档中,我想删除单个节点。
{
"units": {
"1": {
"id":"1",
"name":"one",
"tenants": {
"1" : {
"id": "1",
"name":"x"
},
"2" : { // node I want removed
"id": "2",
"name":"y"
}
}
}
"2": {
"id":"2",
"name":"two",
"tenants": {
"1" : {
"id": "1",
"name":"x"
},
"2" : {
"id": "2",
"name":"z"
}
}
}
}
}我知道我可以使用remove方法删除节点:
val js2 = js \ "units" \ "1" \ "tenants" remove {
case JField(id, _) => id == "2"
case _ => false
}但是,我需要修改整个文档。
发布于 2011-07-07 22:40:36
删除是通过将AST节点转换为JNothing来完成的。有几个函数可以做到这一点,例如“转换”。但在这种情况下,看起来‘替换’效果最好:
js.replace("units" :: "1" :: "tenants" :: "2" :: Nil, JNothing)https://stackoverflow.com/questions/6611238
复制相似问题