JSON verarbeiten

agent47

Aktives Mitglied
Ich habe in eine Redis Datenbank diverse JSON Strings, diese will ich in eine Objektstruktur einlesen, bearbeiten und wieder als JSON String in die Datenbank schreiben. Der Redis Part ist mit der Jedis Libary sehr gut abgedeckt, nur bei JSON bin ich mir nicht Sicher was da für mich die beste ist.

Das Java Programm hat auch keine Kenntnis über die Struktur und Art der Daten. Es müsste also über jede Ebene iteriert werden und geschaut werden was ist es für ein Datentyp und danach weiter gehandelt werden.

Dazu konnte ich leider keine Libary finden die das in der Form unterstützt. Alle die ich finden konnte erfordern das Wissen was das für Daten sind.
 
Was sind das denn für Daten (nicht der genaue Aufbau, der ist ja augenscheinlich nicht bekannt) und was für Änderungen willst du daran vornehmen. Möglicherweise reicht es ja auch einfach aus den String weiterzuverarbeiten.

Wenn du aber rein gar nichts über die Struktur der Daten weißt, dann bleibt dir vermutlich nicht groß was anderes übrig, als einfach in Listen oder Maps o.Ä. zu parsen.
 
Gibt es keine JSON API die das kann?
Ich kenne den Aufbau der Daten schon, die stammen aus einem anderen Projekt (in PHP geschrieben) und werden als JSON Strings in der Datenbank gespeichert. Das Java Programm wird aber sehr aufwendig und unflexibel wenn ich jetzt alle Datenstrukturen implementiere.

In PHP wäre der Ablauf so:
- mit json_decode kann ich den String in ein PHP Array umwandeln
- dann kann ich in einer foreach Schleife über alle Elemente iterieren
- dabei kann ich bei jedem Element prüfen welcher Typ das ist (Bool, Number, String, Array ...) und darauf reagieren

Das muss es doch in Java in ähnlicher Form auch geben? Bei diesem verfahren findet das Programm alleine raus wie die JSON Daten Strukturiert sind.
 
Gibt es keine JSON API die das kann?
Ich kenne den Aufbau der Daten schon, die stammen aus einem anderen Projekt (in PHP geschrieben) und werden als JSON Strings in der Datenbank gespeichert. Das Java Programm wird aber sehr aufwendig und unflexibel wenn ich jetzt alle Datenstrukturen implementiere.

In PHP wäre der Ablauf so:
- mit json_decode kann ich den String in ein PHP Array umwandeln
- dann kann ich in einer foreach Schleife über alle Elemente iterieren
- dabei kann ich bei jedem Element prüfen welcher Typ das ist (Bool, Number, String, Array ...) und darauf reagieren

Das muss es doch in Java in ähnlicher Form auch geben? Bei diesem verfahren findet das Programm alleine raus wie die JSON Daten Strukturiert sind.

Tjoar, Vor- und Nachteile einer Skriptsprache 🙂
In Java müsstest du dafür schon sehr tief in die Byte-Code-Manipulation gehen, vermutlich muss man auch noch den ClassLoader austricksen.
Daher ja auch meine Frage, was du tatsächlich genau vorhast.
Die reine Analyse des Aufbaus ist sicherlich nicht das große Problem und einfach ein wenig Fleißarbeit; das Mapping auf ein Java-Objekt, welches du dann anschließend auch sinnvoll verwenden kannst, ist aber eine ganz andere Hausnummer.

Das beste, was mir da spontan einfällt, ist nach wie vor das, was ich in meiner ersten Antwort bereits vorgeschlagen hatte, und zwar, einfach die eingelesen Werte in passede Listen oder Maps zu schubsen.
 

Zurück
Oben