Convertir en JSON pour DataTable
J'ai JSON dans le format suivant:
[
{"id":"10","name":"User","add":false,"edit":true,"authorize":true,"view":true},
{"id":"11","name":"Group","add":true,"edit":false,"authorize":false,"view":true},
{"id":"12","name":"Permission","add":true,"edit":true,"authorize":true,"view":true}
]
Comment puis-je convertir que en C# DataTable
objet comme suit?
---------------------------------------------------------------------
ID | Name | Add | Edit | View | Authorize
---------------------------------------------------------------------
10 | User | true | true | true | true
11 | Group | true | true | true | true
12 | Permission| true | true | true | true
- Veuillez consulter la réponse à la [ce][1] question comme une référence. [1]: stackoverflow.com/questions/2246694/...
- double possible de Comment faire pour convertir en json dans datatable?
Vous devez vous connecter pour publier un commentaire.
Désérialiser votre jsonstring à une catégorie
Écrire la suite méthode d'extension à votre projet
Appel de la méthode d'extension comme
Il y a une méthode plus facile que les autres réponses ici, qui nécessitent tout d'abord la désérialisation dans une classe c#, et puis de le transformer en une datatable.
Il est possible d'aller directement à un datatable, avec JSON.NET et le code comme ceci:
Il peut également être réalisé en utilisant le code ci-dessous.
Ne savent pas toujours du type dans lequel désérialiser. Donc, il serait pratique de pouvoir prendre toute JSON (qui contient un array) et dynamiquement créer une table à partir de ce.
Un problème peut survenir toutefois, lorsque le deserializer ne savez pas où chercher pour le tableau à compiler. Lorsque cela se produit, nous obtenons un message d'erreur semblable au suivant:
Même si nous lui donnons viennent d'encouragement ou de préparer notre json en conséquence, puis "objet" types à l'intérieur de la matrice peut encore l'empêcher de dépouillement de se produire, où la deserializer ne sais pas comment représenter les objets en termes de lignes, etc. Dans ce cas, les erreurs semblables aux suivantes se produisent:
L'exemple ci-dessous JSON comprend ces deux problématiques caractéristiques:
Alors, comment pouvons-nous résoudre ce problème, et encore maintenir la flexibilité de ne pas savoir le type dans lequel derialize?
Bien ici, c'est une approche simple, je suis venu avec (en supposant que vous êtes heureux d'ignorer les propriétés de type objet, comme __métadonnées dans l'exemple ci-dessus):
Je sais que cela pourrait être plus "LINQy" et n'a absolument aucun la gestion des exceptions, mais j'espère que le concept est transmis.
On commence à utiliser de plus en plus de services à mon travail que de cracher retour JSON, afin de se libérer de fortement-taper tout, c'est ma préférence parce que je suis paresseux!
Vous pouvez faire usage de JSON.Net ici. Jetez un oeil à
JsonConvert.DeserializeObject
méthode.Je vous recommande d'utiliser JSON.NET. c'est une bibliothèque open source pour sérialiser et désérialiser vos objets c# en json et objets Json en .net des objets ...
Sérialisation Exemple:
Voici une autre approche sans faille pour convertir en JSON pour Datatable à l'aide de Cinchoo ETL - une bibliothèque open source
Exemple ci-dessous montre comment convertir
Espère que cela aide.