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.

5voto

Björn Punkte 28353

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.

4voto

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.

4voto

Ben Goldin Punkte 579

Ich verwende Camel Route umarshal(xmljson) -> to(xlst) -> marshal(xmljson). Effizient genug (wenn auch nicht 100% perfekt), aber einfach, wenn Sie bereits mit Camel sind.

3voto

mb21 Punkte 31260

JSONiq ist ein solcher Standard und Sorbas eine Open-Source-C++-Implementierung. JSONiq kann auch als XQuery mit dem Zusatz von JSON als nativem Datentyp betrachtet werden.

2voto

Andriy Gerasika Punkte 118

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

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