Konvertieren Sie beliebig verschachtelte JSON, CSV-Format in Java

Diese Frage wurde schon oft gefragt, aber ich konnte nicht die Antwort finden, die das behebt mein Problem.

Ich versuche zu konvertieren verschachtelte JSON-format in das CSV-format wie diesem :

Den JSON-Struktur ist beliebig und könnte alles sein, verschachtelt oder nicht.

Bin ich nicht angenommen zu wissen, ist es eine Datenbank zu beantworten und ich brauche zu exportieren, diese JSON-Antwort in das CSV-Datei.

Hier ist ein Beispiel

Eingang :

   {
    "_id": 1,
    "name": "Aurelia Menendez",
    "scores": [
              {
                 "type": "exam",
                 "score": 60.06045071030959
               },
               {
                 "type": "quiz",
                 "score": 52.79790691903873
               },
               {
                "type": "homework",
                "score": 71.76133439165544
               }
             ]
          }

Den Ausgang, ich bin auf der Suche nach :

_id,name,scores.type,scores.score,scores.type,scores.score,scores.type,scores.score  
 1,Aurelia Menendez,exam,60.06...,quiz,52.79...,homework,71.76..

Dies ist ein Beispiel, es hätte auch jede andere JSON-Dokument.

Die Idee hier ist, um die punktierte notation verwenden, die in der CSV-Spaltennamen.

Hab ich auch schon benutzt CDL, aber die Ausgabe ist nicht das, was ich will :

_id scores  name
 1  "[{score:60.06045071030959,type:exam},{score:52.79790691903873,type:quiz},{score:71.76133439165544,type:homework}]" Aurelia Menendez

Also, wie kann ich konvertieren verschachtelten JSON, CSV mit dot-notation und in einer generischen Art und Weise ?

Bearbeitungen

Deserialisation der JSON mit Jackson :

   ObjectMapper mapper=new ObjectMapper();

    JsonNode jsonNode=mapper.readValue(new File("C:\\...\\...\...\\test.json"), JsonNode.class);

Ismail

  • Gibt es irgendetwas, was Sie versucht haben?
  • CDL, aber ich bin nicht frei, um Parameter einzustellen, so kann ich die Ausgabe haben möchte ich.
  • Kennen Sie mein Problem ?
  • Haben Sie sich überlegt tatsächlich einige code schreiben? (Ja, ich weiß, das ist ein Hautausschlag, was zu empfehlen.)
  • Ja. Ich habe versucht mit CDL,OpenCSV,Jackson und GSON.
  • bitte aktualisieren Sie Ihre Frage und geben an, dass JSON-Struktur nicht vordefiniert, und Sie können JSON mit beliebiger Struktur, und Sie müssen, um es zu verarbeiten.
  • Hinzugefügt das, was Sie gefragt.
  • Ich denke, dass die Formen der JSON sind begrenzt. Analysieren Formen der JSON-Struktur, die Sie bekommen können aus der Datenbank, und deklarieren Sie die java-Klassen oder java-Klassen, die können die Struktur darzustellen. Und dann benutze GSON oder anderen deserializer für die Bearbeitung dieses json-Struktur.
  • Was ist mit Java?
  • Rafael ist richtig, es sind Regeln für die Struktur von json-formatierten text. Meine $0,02 ist, dass Sie gehen aus einem strukturierten Dokument, wie json oder xml in eine flache csv-Datei verliert Informationen im Allgemeinen. Ich glaube nicht, dass es eine konsistente Methode zur Darstellung von beliebigen json in eine csv-Datei. Sie werden Schwierigkeiten haben, die übersetzung zwischen den beiden.
  • Ich habe Deserialisieren der JSON-und ich habe Hinzugefügt die Ausgabe der Bearbeitungen
  • Ich habe meine Antwort, überprüfen Sie es bitte.

InformationsquelleAutor Ismail Sen | 2014-07-16
Schreibe einen Kommentar