2009-04-03 12 views
1

J'essaye de générer du JSON à partir d'un fichier XML, mais pas une simple conversion. Je souhaite choisir et choisir des bits et avoir une structure légèrement différente. Je préférerais non seulement concaténer une chaîne géante ensemble et je me demandais s'il y avait quelques bibliothèques décentes autour de faire cela.Générer des JSON différents à partir de XML

En outre, pour les tests que je voudrais être en mesure de valider le JSON créé, juste une simple vérification pour voir si elle est valide JSON

Répondre

1

Chargez le XML dans un ensemble de classes (utiliser XMLSerializer) puis mettre en œuvre JSON méthodes de générateur sur ces classes. Différentes méthodes, différentes JSON.

1

Vous pouvez convertir facilement du XML en d'autres représentations textuelles en utilisant XSLT, en particulier fichier vers fichier en utilisant xsltproc ou une version en ligne de commande de xalan. XSLT est parfois un langage de programmation maladroit, mais si vous suivez cette voie, j'ai deux recommandations pour les conversions JSON. Réglez votre sortie au texte, avec un jeu de caractères UTF-8:

<xsl:output method="text" encoding="UTF-8" /> 

et exécuter JSLint sur le résultat, afin de capturer des bugs dans votre fichier XSLT.

+0

Oui, j'ai utilisé XSLT pour y parvenir par le passé, mais XSLT n'est pas très lent? J'ai besoin de ça pour être assez mièvre. – qui

1

J'utiliserais probablement Linq en XML (XElement et ses amis) pour générer le nouvel objet, puis passer cet objet au sérialiseur Json.

0

D'autres réponses semblent bonnes: Je pense que je voudrais également lier le format de la source dans les objets, puis sérialiser comme les autres formats. Et toutes les transformations seraient faites aux objets, et n'utilisant pas la représentation de format de données. Lorsque vous utilisez l'analyseur syntaxique approprié (pour l'entrée) et les générateurs/sérialiseurs (pour la sortie), vous n'avez pas à vous soucier de la bonne forme (xml ou json résultant étant syntactiquement correct). Et pour la validité biz-logique, vous pouvez (et devriez) le faire en utilisant des objets.

Questions connexes