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?Ich habe die enorme Menge an JavaScript-Templating-Engines und all ihre Inline-HTML-Vorlagen, verschiedenen Auszeichnungsstile usw. wirklich satt und habe beschlossen, die eine kleine Bibliothek aufbauen das die XSLT-Formatierung für JSON-Datenstrukturen ermöglicht. Keine Raketenwissenschaft in irgendeiner Weise - es ist nur JSON zu XML geparst und dann mit einem XSLT-Dokument formatiert. Es ist auch schnell, nicht so schnell wie JavaScript-Vorlage Motoren in Chrome, aber in den meisten anderen Browsern ist es mindestens so schnell wie die JS-Engine Alternative für größere Datenstrukturen.
JSLT kommt einer JSON-Entsprechung von XSLT sehr nahe. Es handelt sich um eine Transformationssprache, bei der Sie den festen Teil der Ausgabe in JSON-Syntax schreiben und dann Ausdrücke einfügen, um die Werte zu berechnen, die Sie in die Vorlage einfügen möchten.
Ein Beispiel:
{
"time": round(parse-time(.published, "yyyy-MM-dd'T'HH:mm:ssX") * 1000),
"device_manufacturer": .device.manufacturer,
"device_model": .device.model,
"language": .device.acceptLanguage
}
Es ist in Java auf der Grundlage von Jackson implementiert.
Es ist sehr gut möglich, JSON mit XSLT zu konvertieren: Sie benötigen einen JSON2SAX Deserializer und einen SAX2JSON Serializer.
Beispielcode in Java: http://www.gerixsoft.com/blog/json/xslt4json
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).