Gibt es eine XSLT Äquivalent für JSON? Etwas, das es mir ermöglicht, JSON so zu transformieren, wie XSLT es bei XML tut.
Antworten
Zu viele Anzeigen?XSLT-Äquivalente für JSON - eine Liste von Kandidaten (Tools und Spezifikationen)
Werkzeuge
1. XSLT
Sie können verwenden XSLT für JSON mit dem Ziel fn:json-to-xml .
Dieser Abschnitt beschreibt die Möglichkeiten, JSON-Daten mit XSLT zu verarbeiten.
2. jq
jq ist wie sed für JSON-Daten - man kann damit strukturierte Daten mit der gleichen Leichtigkeit zerschneiden, filtern, abbilden und umwandeln, wie man mit sed, awk, grep und Co. mit Text spielen kann. Es gibt Installationspakete für verschiedene Betriebssysteme.
3. jj
JJ ist ein Befehlszeilendienstprogramm, das eine schnelle und einfache Möglichkeit bietet, Werte aus JSON-Dokumenten abzurufen oder zu aktualisieren. Unter der Haube arbeitet es mit GJSON und SJSON.
4. fx
Kommandozeilenwerkzeug zur JSON-Verarbeitung
- Sie brauchen keine neue Syntax zu lernen
- Einfaches JavaScript
- Formatierung und Hervorhebung
- Eigenständige Binärdatei
5. CsvCruncher
Befehlszeilen-Tabellendaten SQL-basiertes Verarbeitungswerkzeug
- Sie brauchen keine neue Syntax zu lernen
- Geeignet, wenn JSON ein großes Array mit ähnlichen Elementen enthält
- Unterstützt mehrere Dokumente, die als mehrere SQL-Tabellen verarbeitet werden
- Geschrieben in Kotlin, läuft auf Java
- Auch als Java-Bibliothek im Maven Central Repository verfügbar
6. jl
jl ("JSON lambda") ist eine kleine funktionale Sprache zur Abfrage und Bearbeitung von JSON.
7. JOLT
In Java geschriebene Bibliothek zur Umwandlung von JSON in JSON, wobei die "Spezifikation" für die Umwandlung selbst ein JSON-Dokument ist.
8. gron
JSON greppbar machen! gron wandelt JSON in diskrete Zuweisungen um, damit es einfacher ist, nach dem Gewünschten zu suchen und den absoluten "Pfad" dazu zu sehen. Es erleichtert die Erforschung von APIs, die große JSON-Blöcke zurückgeben, aber eine schreckliche Dokumentation haben.
9. json-e
JSON-e ist ein Datenstruktur-Parametrisierungssystem zur Einbettung von Kontext in JSON-Objekte. Die zentrale Idee besteht darin, eine Datenstruktur als "Vorlage" zu behandeln und sie unter Verwendung einer anderen Datenstruktur als Kontext zu transformieren, um eine Ausgabedatenstruktur zu erzeugen.
10. JSLT
JSLT ist eine vollständige Abfrage- und Transformationssprache für JSON. Das Design der Sprache ist inspiriert von jq, XPath und XQuery.
11. JSONata
JSONata ist eine leichtgewichtige Abfrage- und Transformationssprache für JSON-Daten. Inspiriert von der "Location Path"-Semantik von XPath 3.1, ermöglicht sie die Formulierung anspruchsvoller Abfragen in einer kompakten und intuitiven Notation.
12. JSONPath Plus
Analyse, Umwandlung und selektive Extraktion von Daten aus JSON-Dokumenten (und JavaScript-Objekten). jsonpath-plus erweitert die ursprüngliche Spezifikation um einige zusätzliche Operatoren und verdeutlicht einige Verhaltensweisen, die in der ursprünglichen Spezifikation nicht aufgeführt sind.
13. json-transforms Letztes Commit 1. Dezember 2017
Bietet einen rekursiven, pattern-matching Ansatz zur Umwandlung von JSON-Daten. Transformationen werden als eine Reihe von Regeln definiert, die der Struktur eines JSON-Objekts entsprechen. Bei einer Übereinstimmung gibt die Regel die umgewandelten Daten aus, wobei sie optional rekursiv ist, um untergeordnete Objekte umzuwandeln.
14. json Letzte Übertragung Jun 23, 2018
json ist ein schnelles CLI-Tool für die Arbeit mit JSON. Es ist ein node.js-Skript mit einer einzigen Datei und ohne externe Deps (außer node.js selbst).
15. jsawk Letzte Übertragung 4. März 2015
Jsawk ist wie awk, aber für JSON. Sie arbeiten mit einem Array von JSON-Objekten, die von stdin gelesen werden, und filtern sie mit JavaScript, um ein Ergebnis-Array zu erzeugen, das auf stdout ausgegeben wird.
16. yate Letzter Beitrag 13. März 2017
Tests können als Dokumente verwendet werden https://github.com/pasaran/yate/tree/master/tests
17. jsonpath-object-transform Letzter Beitrag Jan 18, 2017
Zieht Daten aus einem Objektliteral mit JSONPath und erzeugt ein neues Objekt auf der Grundlage einer Vorlage.
18. Heften Letzter Beitrag 16. September 2013
Stapling ist eine JavaScript-Bibliothek, die XSLT-Formatierung für JSON-Objekte ermöglicht. Anstelle einer JavaScript-Templating-Engine und Text/HTML-Vorlagen bietet Stapling die Möglichkeit, XSLT-Vorlagen zu verwenden, die asynchron mit Ajax geladen und dann clientseitig zwischengespeichert werden, um Ihre JSON-Datenquellen zu parsen.
Technische Daten:
JSON Pointer definiert eine Stringsyntax zur Identifizierung eines bestimmten Wertes innerhalb eines JavaScript Object Notation (JSON)-Dokuments.
JSONPath-Ausdrücke beziehen sich immer auf eine JSON-Struktur, genauso wie XPath-Ausdrücke in Kombination mit einem XML-Dokument verwendet werden
JSPath für JSON ist wie XPath für XML".
Die Hauptinspirationsquelle hinter JSONiq ist XQuery, das sich bisher als erfolgreiche und produktive Abfragesprache für semi-strukturierte Daten bewährt hat
Interessante Idee. Eine Suche bei Google ergab ein paar interessante Seiten, darunter:
- eine Skizze wie ein solches "jsonT"-Tool implementiert werden könnte, und einige Downloads
- algunos Diskussion über diese Umsetzung
- ein Unternehmen, das etwas Geeignetes implementiert haben könnte
Ich hoffe, das hilft.
Versuchen Sie JOLT . Es ist eine in Java geschriebene Bibliothek für die Umwandlung von JSON in JSON.
Sie wurde speziell deshalb entwickelt, weil wir nicht das Spiel "JSON -> XML -> XSLT -> XML -> JSON" spielen wollten, und die Verwendung einer Vorlage für jede ausreichend komplexe Transformation ist nicht wartbar.
XSLT unterstützt JSON wie unter http://www.w3.org/TR/xslt-30/#json
XML verwendet eckige Klammern für Begrenzungszeichen, JSON verwendet geschweifte Klammern, eckige Klammern, ... D. h. XML ist durch weniger Vergleiche bei der Token-Erkennung für die deklarative Transformation optimiert, wohingegen mehr Vergleiche, wie z. B. Switch-Anweisungen, aus Geschwindigkeitsgründen spekulative Verzweigungsvorhersagen voraussetzen, für die imperativer Code in Skriptsprachen nützlich ist. Als unmittelbare Konsequenz können Sie die Leistung von XSLT- und Javascript-Engines als Teil von responsiven Seiten für verschiedene Mischungen von halbstrukturierten Daten vergleichen. Bei vernachlässigbarem Datenaufkommen könnten Transformationen mit JSON ohne XML-Serialisierung genauso gut funktionieren. Die Entscheidung von W3 sollte auf einer besseren Analyse beruhen.
jq - leichter und flexibler JSON-Prozessor für die Befehlszeile
Es ist nicht schablonenbasiert wie XSLT, aber prägnanter. z.B. zum Extrahieren von name
y address
Felder in ein Array: [.name, .address]
En Lehrgang führt durch ein Beispiel für die Umwandlung der JSON-API von Twitter (und der Handbuch hat viele Beispiele).
- See previous answers
- Weitere Antworten anzeigen
1 Stimmen
Übrigens, in welcher Sprache/Plattform soll das geschehen?
9 Stimmen
@StaxMan XSLT ist ein Standard, der in vielen Sprachen und Plattformen implementiert ist, und meine Fragen zielen auf ein ähnliches Vorhaben ab.
0 Stimmen
Ja, aber auch wenn es keine exakte Entsprechung zu geben scheint, könnte es für eine Teilmenge von Sprachen anwendbare Werkzeuge geben, die helfen könnten.
57 Stimmen
+1 für Ihre Frage. Viele Leute scheinen XSLT zu übersehen oder schlichtweg nicht zu mögen, aber das kann einfach eine Reaktion auf die Ausführlichkeit von XML sein. Und in der Tat, da XML allmählich in Ungnade fällt, gibt es immer weniger Gelegenheiten, XSLT zu verwenden, was sehr schade ist! Ein XSLT-Äquivalent für JSON wäre großartig.
13 Stimmen
@NicolasLeThierryd'Ennequin Einverstanden. Viele Leute hassen XML und lehnen daher XSLT ab. Das XML-Ökosystem der Tools ist auch stark auf Java-Entwickler ausgerichtet, was noch mehr Leute abschreckt. Aber ich habe mich Mitte der 2000er Jahre intensiv mit XSLT beschäftigt, und es gibt eine enorme Leistungsfähigkeit, die keine direkte Entsprechung außerhalb des XML-Ökosystems hat. Ich würde Liebe ein JSON-Äquivalent!
0 Stimmen
Was XSLT jedoch so großartig machte, waren andere XML-Standards, auf denen es aufbaute. Insbesondere: (1) die Möglichkeit, ein XML-Dokument mit einem Schema zu validieren (nicht erforderlich, aber oft verwendet), und (2) XPath, mein Favorit immer Sprache für die Navigation in Datenhierarchien. Jedes solide XSLT-Äquivalent für JSON würde gut daran tun, diese Dinge ebenfalls zu berücksichtigen.
1 Stimmen
@NicolasLeThierryd'Ennequin : siehe jsfiddle.net/YSharpLanguage/kj9pk8oz/10 o jsfiddle.net/YSharpLanguage/ppfmmu15/10 o jsfiddle.net/YSharpLanguage/hvo24hmk/3
0 Stimmen
@Zearin: OP könnte vernünftigerweise erwarten, dass jeder, der in der Lage ist, diese Frage zu beantworten, weiß, dass ein XSLT-Analogon auf einem XPath-Analogon aufbauen muss (obwohl das XPath-Analogon nicht notwendigerweise einen eigenen Namen hat, wie es XPath hat).
1 Stimmen
@BhargavRao Ich stimme zu, dass dies geschlossen werden sollte, aber ich denke, dass der Grund für die Empfehlung besser wäre, da wir aufgefordert werden, einen Standard oder ein Werkzeug zu benennen, das vielleicht oder vielleicht auch nicht existiert, anstatt einen Code zu suchen.
1 Stimmen
ANTWORT: Ja, das stimmt: Siehe JSON-Abzeichen . Es handelt sich um eine vorgeschlagene Norm ( RFC 6902 ).
0 Stimmen
Für C#/.NET gibt es eine Bibliothek, die JSON-Transformationen durchführen kann: "JUST - JSON Under Simple Transformation (XSLT equivalent for JSON)". github.com/WorkMaze/JUST.net
0 Stimmen
Link Versuchen Sie bitte, xslt in json zu konvertieren
5 Stimmen
Ich bin mit dem Schluss dieser Antwort überhaupt nicht einverstanden. Eine einfache Umformulierung hätte ausgereicht: "Wie kann man JSON deklarativ in JSON umstrukturieren?"
0 Stimmen
Diese Frage ist so abgeschlossen und objektiv, dass wir sie meiner Meinung nach wieder öffnen können. Technisch gesehen handelt es sich um eine Frage nach einem Werkzeug, aber sie ist von ganz anderer Natur als die typische Frage, die aus diesem Grund geschlossen wird.
1 Stimmen
Warum nicht
JSON -convert-> XML -XSLT-> XML -convert-> JSON
? Die Konvertierung von JSON nach XML ist nur eine Wahl, wie man ein strukturiertes Format in ein anderes strukturiertes Format umwandelt. , dann XSLT anwenden und schließlich zurückkonvertieren. Da Sie gewählt haben, wie das XML nach der Konvertierung in XML aussieht, sollte die Rückkonvertierung in diesem Fall einfach sein (es gibt wahrscheinlich keine gute Möglichkeit, einen "beliebigen XML-zu-JSON"-Konverter zu erstellen, da es zu viele Möglichkeiten gibt, etwas in XML auszudrücken, während JSON ziemlich festgelegt ist, wie Dinge serialisiert werden).