523 Stimmen

XSLT-Äquivalent für JSON

Gibt es eine XSLT Äquivalent für JSON? Etwas, das es mir ermöglicht, JSON so zu transformieren, wie XSLT es bei XML tut.

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.

217voto

jschnasse Punkte 6745

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

79voto

Tim Punkte 8867

Interessante Idee. Eine Suche bei Google ergab ein paar interessante Seiten, darunter:

Ich hoffe, das hilft.

74voto

Milo S Punkte 4270

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.

17voto

Chawathe Vipul S Punkte 1548

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.

16voto

13ren Punkte 11339

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).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X