【发布时间】:2017-02-01 09:07:39
【问题描述】:
我想在 json 结构中删除名为“id”的顶级字段,而不删除名为“id”的所有字段,当我运行以下代码时会发生这种情况:
scala> import org.json4s._
import org.json4s._
scala> import org.json4s.native.JsonMethods._
import org.json4s.native.JsonMethods._
scala> import org.json4s.JsonDSL._
import org.json4s.JsonDSL._
scala> val json = parse("""{ "id": "bep", "foo": { "id" : "bap" } }""")
json: org.json4s.JValue = JObject(List((id,JString(bep)), (foo,JObject(List((id,JString(bap)))))))
scala> json removeField {
| case ("id", v) => true
| case _ => false
| }
res0: org.json4s.JValue = JObject(List((foo,JObject(List()))))
知道如何避免删除内部的“id”字段吗?
编辑:不幸的是,我无法列出 json 包含或可以包含的所有可能的顶级对象。
【问题讨论】:
-
好吧,您可以在这里使用这种方法并选择所有不是第一个的 id 字段,以便它们保持不变:stackoverflow.com/questions/14216069/…
-
@nmat 不确定我是否关注?这个答案是关于在不触及外部字段的情况下删除嵌套字段,这很好。我想删除一个顶级字段而不触及其他可能嵌套的字段。