467 votes

XSLT équivalent de JSON

Est-il un XSLT équivalent pour JSON? Quelque chose pour me permettre de faire des transformations sur JSON comme XSLT n'XML.

79voto

Tim Points 4953

Idée intéressante. Quelques recherches sur Google produit quelques pages d'intérêt, y compris:

Espérons que cette aide.

74voto

Milo S Points 91

Essayez de SECOUSSE. C'est un JSON JSON transformation de la bibliothèque écrite en Java.

Il a été créé précisément parce que nous ne voulons pas jouer les "JSON -> XML -> XSLT -> XML -> JSON" en jeu, et à l'aide d'un modèle pour tout suffisamment complexes pour transformer est difficile à maintenir.

15voto

Derek Curtis Points 141

J'ai récemment trouvé un outil que j'aime pour le style de JSON: http://twigkit.github.com/tempo/. Outil très simple à utiliser--à mon avis, il est beaucoup plus facile à travailler que XSLT--pas besoin de requêtes XPATH.

15voto

13ren Points 3672

jq - léger et flexible de ligne de commande JSON processeur

Il n'est pas basé sur un modèle comme XSLT, mais plus concis. par exemple, pour extraire name et address des champs dans un tableau: [.name, .address]

Le tutoriel promenades à travers un exemple de la transformation de Twitter API JSON (et le manuel contient de nombreux exemples).

11voto

Rick Points 89

Pour dire l'absence d'outils suggèrent l'absence de besoin, c'est juste la mendicité la question. La même chose pourrait être appliqué sur le support pour X ou Y dans Linux (Pourquoi s'embêter à développer la qualité des pilotes et/ou des jeux pour une de ces minorités OS? Et pourquoi prêter attention à un OS que le gros gibier et les entreprises de matériel ne se développe pas?). Probablement les personnes qui auraient besoin d'utiliser XSLT et JSON fin à l'aide d'un trivial solution de contournement: la Transformation du JSON en XML. Mais ce n'est pas la solution optimale, est-il?

Lorsque vous avez un natif format JSON et que vous souhaitez modifier "wysywyg" dans le navigateur, XSLT, serait plus que suffisant pour la solution du problème. Que faire avec les traditionnelles de programmation javascript peut devenir une douleur dans le cul.

En fait, j'ai mis en place un "âge de pierre" approche XSLT, à l'aide de sous-chaˆ ıne d'analyse pour interpréter quelques commandes de base pour javascript, comme appeler un modèle de processus d'enfants, etc. Certainement la mise en œuvre d'un moteur de transformation avec un objet JSON est beaucoup plus facile que la mise en œuvre d'un véritable analyseur XML parser le XSLT. Problème est, que d'utiliser des modèles XML à transformer un objet JSON vous avez besoin de parser le XML des modèles.

Pour transformer un objet JSON en XML (ou HTML, ou le texte, ou quoi que ce soit), vous devez réfléchir soigneusement à propos de la syntaxe et de ce que les caractères spéciaux que vous devez utiliser pour identifier les commandes de transformation. Sinon, vous finirez par avoir à la conception d'un analyseur syntaxique pour votre propre création de modèles de langue. Après avoir parcouru ce chemin, je peux vous dire que c'est pas joli.

Mise à jour (12 Novembre 2010): Après quelques semaines de travail sur mon analyse, j'ai pu l'optimiser. Les modèles sont analysées à l'avance et les commandes sont stockées sous forme d'objets JSON. Les règles de Transformation sont aussi des objets JSON, tandis que le modèle de code est un mélange de HTML et un homebrew syntaxe similaire à shell code. J'ai été en mesure de transformer un complexe document JSON en HTML pour faire un éditeur de documents. Le code est autour de 1K lignes pour l'éditeur (c'est pour un projet privé donc je ne peux pas la partager) et près de 990 lignes pour le JSON de transformation de code (comprend itération des commandes, des comparaisons simples, le modèle de l'appel, la variable de l'épargne et de l'évaluation). J'ai l'intention de le publier sous une licence MIT. Envoyez-moi un mail si vous désirez vous impliquer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X