Entfernen von JSON-Elementen mit jackson
Habe ich eine bestimmte JSON-Knoten, der entspricht der import org.codehaus.jackson.JsonNode, und nicht
import org.codehaus.jackson.Karte.JsonNode.
[
{
"givenName": "Jim",
"formattedName": "jimJackson",
"familyName": null,
"middleName": "none",
"honorificPrefix": "mr",
"honorificSuffix": "none"
},
{
"givenName": "john",
"formattedName": "johnLasher",
"familyName": null,
"middleName": "none",
"honorificPrefix": "mr",
"honorificSuffix": "none"
},
{
"givenName": "carlos",
"formattedName": "carlosAddner",
"familyName": null,
"middleName": "none",
"honorifiPrefix": "mr",
"honorificSuffix": "none"
},
{
"givenName": "lisa",
"formattedName": "lisaRay",
"familyName": null,
"middleName": "none",
"honorificPrefix": "mrs",
"honorificSuffix": "none"
},
{
"givenName": "bradshaw",
"formattedName": "bradshawLion",
"familyName": null,
"middleName": "none",
"honorificPrefix": "mr",
"honorificSuffix": "none"
},
{
"givenName": "phill",
"formattedName": "phillKane",
"familyName": null,
"middleName": "none",
"honorificPrefix": "mr",
"honorificSuffix": "none"
},
{
"givenName": "Gabriel",
"formattedName": "gabrielMoosa",
"familyName": null,
"middleName": "none",
"honorificPrefix": "mr",
"honorificSuffix": "none"
}
]
Möchte ich zum entfernen der "Familienname" und "middleName" aus dem JSON-Knoten der oben genannten array. Gibt es eine Möglichkeit, dies zu erreichen?
InformationsquelleAutor der Frage R Syed | 2013-03-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich noch nicht getestet, aber ich denke, so etwas würde tun, was Sie wollen:
Könnte man auch effizienter mit Jackon ' s raw-parsing-API, aber der code wäre viel chaotischer.
InformationsquelleAutor der Antwort gsteff
Nach dem JSONObject DokumentationJSONObject implementiert Gekennzeichnet.entfernen Sie die gibt den gespeicherten Wert mit dem Schlüssel. Verwenden Sie es wie
InformationsquelleAutor der Antwort Luke Salamone
ObjectMapper des Jackson gibt Lösung mit nur ein paar Schritte.
Speichern Sie die json-Daten in eine Datei, sagen 'Daten.json'.
Kopieren Sie folgenden code in eine Funktion, ohne import-Anweisungen und aufrufen der Funktion.
Die daraus resultierende JSON geschrieben werden in eine neue Datei 'data1.json'.
InformationsquelleAutor der Antwort Nayana Shekar C
Antwort geschrieben von gsteff können auch verwendet werden, aber ich dachte ein einfacher Weg war, um das Objekt-mapper-konvertieren JSONArray statt JsonNode und gehen von dort aus.
InformationsquelleAutor der Antwort R Syed
Ich kam vor kurzem auf diese Frage, weil ich hatte ein ungewöhnliches Stück von JSON, die ich brauchte, um ein element entfernen:
Den ersten drei Elemente stellen eine person und eine entsprechende Punktzahl Objekt. Die Letzte "Warnungen", nicht übereinstimmen score-Objekt und das ist der, den ich entfernen wollte.
Einnahme des Stammknotens als Start-JsonNode von gsteff die Antwort von oben, der Weg, den ich gefunden, um diese zu entfernen wurde die Iteration durch alle Knoten, hinzufügen von einem Objekt zugeordnet-version des Knotens in eine HashMap, die wurde die gewünschte Rendite-Objekt, das wollte ich es sei denn es war die "Warnungen" element:
InformationsquelleAutor der Antwort rusty
Können Sie einfach erstellen Sie ein neues JSONObject, Lesen Sie alle Knoten außer "familyName" und "middleName", dann speichern Sie Sie alle zu einer neuen Datei.
Hier ist ein Beispiel. JSON.Einfaches Beispiel – Lesen Und Schreiben JSON
InformationsquelleAutor der Antwort Sifeng