Comment convertir XML en JSON à l'aide de C#/LINQ?
J'ai le fichier XML suivant que j'ai besoin de convertir en JSON dans le serveur. Au départ, j'ai pensé que je voudrais convertir un Dictionnaire et ensuite utiliser le JavaScriptSerializer pour le transformer en JSON mais étant donné que chaque colonne peut avoir une valeur différente, je ne pense pas que cela fonctionnerait. Quelqu'un a fait quelque chose de semblable auparavant en C#/LINQ?
J'ai besoin de préserver les Types de Valeur(Boolean, String, Integer) de chaque colonne.
Je vous serais reconnaissant de tout conseil sur ce que je suis en train de commencer à travailler avec XML. Merci.
<Columns>
<Column Name="key1" DataType="Boolean">True</Column>
<Column Name="key2" DataType="String">Hello World</Column>
<Column Name="key3" DataType="Integer">999</Column>
</Columns>
- Avez-vous besoin de garder la valeur de
DataType
? Si elle pouvait être transformé en un simple tableau associatif. - Oui j'ai besoin de garder le Type de Données, l'Autre sage, j'aurais juste converti à un dictionnaire!
- Double Possible de Comment faire pour convertir au format XML ou JSON XML en JSON?
Vous devez vous connecter pour publier un commentaire.
produit:
Évidemment, cela traite de toutes les valeurs comme des chaînes de caractères. Si vous souhaitez conserver le type sous-jacent de la sémantique, vous pouvez effectuer les opérations suivantes:
produit:
Et si vous ne pouvez pas modifier le XML sous-jacent de la structure, vous aurez besoin d'une fonction personnalisée qui vous permet de convertir entre votre custom types et sous-jacentes .NET type:
Est-il nécessaire d'utiliser LINQ? Sinon, vous pouvez essayer ceci:
Prises de ce post.
Pour la profondeur d'imbrication des éléments XML avec les plus et les attributs inconnus vous pouvez utiliser cette récursivité:
Pour votre exemple, le résultat sera:
Et pour les plus complexes XML cas comme cette, vous pouvez vérifier le JSON analogique ici.