JSON to CSV via Shell-Script?

Lasersword

Cadet 4th Year
Registriert
Jan. 2008
Beiträge
123
Hallo zusammen,

heute kam bei uns das Thema auf, ob man eine JSON-Datei zu einer CSV-Datei konvertieren kann.
Natürlich findet man über unseren guten Freund Google jede Menge Online-Converter, die genau das machen,
was wir brauchen, allerdings würden wir die sensiblen Daten ungern online hochladen.

Bei meiner weiteren Recherche habe ich natürlich auch Programme und Java-Scripte gefunden, aber unsere IT mag es nicht, wenn wir einfach Software installieren (was wir systemseitig auch nicht können).

Also habe ich überlegt, ob Windows das nicht auch von Hause aus kann.
Habe dann folgende Seite gefunden https://powershell.org/forums/topic/convertfrom-json-to-csv/

Nur weder über Powershell noch als Shell-Script funktioniert das.

Hab Ihr vielleicht eine Ahnung, wie ich die Datei ohne zusätzliche Software oder Online-Lösung in
CSV umkonvertieren kann?

Vielen Dank im Voraus.

Lasersword
 
Naja, jede Datenstruktur ist anders. Irgendwelche Fertiglösungen gibts dafür nicht, außer du arbeitest mit nem standardisierten Format, was ich bezweifle.

Als Cmdlets gibts alles fertig: (ConvertTo|ConvertFrom)-(Json|Csv)

Nur taugt das aber alles nichts, wenn JSON verschachtelte Strukturen erlaubt, was CSV nicht kann. Ergo musst du einen Weg hin und zurück finden, je nachdem was du halt brauchst und wie deine Struktur aussieht.
Lasersword schrieb:
Hab Ihr vielleicht eine Ahnung, wie ich die Datei ohne zusätzliche Software oder Online-Lösung in
CSV umkonvertieren kann?
TL;DR Gar nicht.
 
Mit welchem Interpreter führst du die Skripte aus? Node darf er nicht installieren, der Scripting Host ist von 1900.
 
Snooty schrieb:
JS würde doch lokal/offline funktionieren.

Aber dafür brauche ich doch das Developer-Kit, oder?
Ergänzung ()

Yuuri schrieb:
Mit welchem Interpreter führst du die Skripte aus? Node darf er nicht installieren, der Scripting Host ist von 1900.

Ich hab ja nichts, nur die Bordmittel.
Also Powershell und Editor (für Batch)
 
Snooty schrieb:
Sorry, ich kenne mich da jetzt nicht näher aus, aber JS läuft ja in jedem Browser.

Ich dachte, du könntest deine Datei bspw. einfach über ein Uploadformular einlesen und konvertieren.

Snooty, danke für den Hinweis.
Nur leider bekomme ich die ganzen Skripte nicht zum laufen.
JS ist nicht wirklich meine Stärke.

Ich verstehe auch die Syntax leider auch nicht vollständig.
Siehe z. B. hier: Link

Eigentlich bräuchte ich nur etwas wie diese Seite hier https://konklone.io/json/
nur halt offline.
 
Lasersword schrieb:
Eigentlich bräuchte ich nur etwas wie diese Seite hier https://konklone.io/json/
nur halt offline.

Dann lad die Seite doch runter?
Wenn du sie als ganze Webseite runterlädst hast du auch die js und css Dateien, dann noch die Google Analytics aus dem HTML-head rauswerfen, aufrufen im Browser und konvertieren lassen.
Kannst ja offline gehen davor, aber bei mir wurde bei einem test nicht "nach Hause telefoniert".
Dann hast du es ja auch offline.
 
max40 schrieb:
was funktioniert den nicht an der Variante von https://powershell.org/forums/topic/convertfrom-json-to-csv/ ?
Hast du das Beispiel da mal erfolgreich getestet und dann versucht auf deinen Fall zu ändern?
Welche Fehlermeldung bekommst du?

Naja, was wurde einfach keine CSV-Datei erzeugt.
Eine Fehlermeldung habe ich nicht bekommen.

@pcBauer: Auf die Idee bin ich natürlich nicht gekommen.
Wo genau muss ich die Google Analytics entfernen (Welche Datei und wie erkenne ich den Code)

Danke,
Lasersword
 
Wenn ich die heruntergeladene HTML-Datei öffne (mit einem Editor wie Notepad++), dann ist ganz unten ein Script-Block:

HTML:
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-252618-16', 'konklone.io');
  ga('set', 'forceSSL', true);
  ga('set', 'anonymizeIp', true);
  ga('send', 'pageview');
</script>

Den solltest du komplett wegwerfen dürfen.

Das müsste dann auch schon alles sein. :)
 
Guten Morgen,

leider gibt es 2 Probleme:

1. Die von mir erwähnte Seite führt zu einer Fehlermeldung mit meiner JSON-Datei, aber https://json-csv.com/ macht es ohne Probleme.

Also habe ich die Seite mal gespeichert. Dort ist auch Google Analytics Script drin.
Habe diesen entfernt.

2. Aber die Seite funktioniert dann nicht. Also habe ich das Script mal drin gelassen (also die Seite neu gespeichert) und mit Firefox gestartet. Nachdem ich den Code eingefügt habe, sehe ich einen Statusbar, allerdings passiert dann nichts.

Hast du (oder jemand anderes) noch eine Idee?
 
Hast du jetzt nur die HTML Seite offline oder auch die ganzen js- und css-dateien wie jquery-2.js, analytics.js, bootstrap.css usw. ?
 
Also mittels XSLT wäre es einfach, du müsstest das JSON halt vorher mittels eines Kommandozeilentools, welches
du von deinem Script ausrufst, in XML umwandeln.
Hab mich auch mal schlau gemacht, ob es so etwas wie XSLT auch fü JSON gibt, habe aber keine definitive Antwort gefunden:
https://stackoverflow.com/questions/1618038/xslt-equivalent-for-json
 
Zurück
Oben