Ich möchte ein Top-Level-Feld namens "ID" in einer JSON-Struktur entfernen, ohne alle Felder namens "ID", was passiert, wenn ich laufe Mit dem folgenden Code:Top-Level-Feld in Json4s entfernen, wenn verschachteltes Feld mit ähnlichen Namen existiert
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()))))
Jede Idee, wie ich vermeiden, kann das innere „id“ -Feld zu entfernen?
Edit: leider habe ich nicht die Fähigkeit, die alle möglichen Top-Level zur Liste haben Objekte die json enthält oder enthalten.
Nun, könnte man diesen Ansatz hier und wählen Sie alle ID-Felder, die nicht die ersten sind, so dass sie gleich bleiben: http://stackoverflow.com/questions/14216069/scala-remove-field-from-json -Dateien-in-the-nested-Objekt-mit definierten-namen – nmat
@nmat nicht sicher, ob ich folgen? In dieser Antwort geht es darum, ein verschachteltes Feld zu entfernen, ohne die äußeren Felder zu berühren, was in Ordnung ist. Ich möchte ein Feld der obersten Ebene entfernen, ohne andere, möglicherweise verschachtelte Felder zu berühren. – burk