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?Ein Konzept zur Verwendung von reinem JavaScript zusammen mit dem vertrauten und deklarativen Muster hinter den übereinstimmenden Ausdrücken und rekursiven Vorlagen von XSLT finden Sie unter https://gist.github.com/brettz9/0e661b3093764f496e36
(Ein ähnlicher Ansatz könnte für JSON gewählt werden.)
Beachten Sie, dass die Demo auch auf JavaScript 1.8 Ausdruck Schließungen für die Bequemlichkeit bei der Expression von Vorlagen in Firefox (zumindest, bis die ES6 Kurzform für Methoden implementiert werden kann) beruht.
Haftungsausschluss: Dies ist mein eigener Code.
Warum konvertieren Sie JSON nicht in XML mit Herr Data Coverter umwandeln, mit XSLT transformieren und dann mit demselben Verfahren wieder in JSON umwandeln.
Ich bin mir nicht sicher, ob es dafür einen Bedarf gibt, und das Fehlen von Instrumenten deutet für mich auf einen Mangel an Bedarf hin. JSON wird am besten in Form von Objekten verarbeitet (so wie es in JS sowieso gemacht wird), und man verwendet typischerweise die Sprache der Objekte selbst, um Transformationen durchzuführen (Java für Java-Objekte, die aus JSON erstellt wurden, dasselbe für Perl, Python, Perl, c#, PHP und so weiter). Nur mit normalen Zuweisungen (oder set, get), Schleifen und so weiter.
Ich meine, XSLT ist nur eine weitere Sprache, und ein Grund, warum sie benötigt wird, ist, dass XML keine Objektnotation ist und daher Objekte von Programmiersprachen nicht genau passen (Impedanz zwischen hierarchischem XML-Modell und Objekten/Strukturen).
- 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).