6
votes

.NET SIMPLETJSON: DESERIALISER JSON à un objet dynamique

J'utilise la bibliothèque SimpleJson à partir d'ici: http://simplejson.codeplex.com/

Je Aime désérialiser une chaîne JSON à un objet dynamique comme celui-ci: xxx

La partie de désérialisation fonctionne correctement, mais appelant json.foo jette une exception RuntimeBinderException avec le message d'erreur ' SimpleJson.jsonObject 'ne contient pas de définition pour' FOO '.

Comment puis-je désérialiser une chaîne JSON à l'aide de SimpleJson et accédez aux propriétés dynamiques à l'aide de la syntaxe JSON.FOO?


0 commentaires

3 Réponses :


4
votes

En regardant les échantillons, jsonObject Les propriétés sont accessibles comme un dictionnaire. Donc, au lieu de json.foo , vous auriez besoin de json ["foo"] .

Vous êtes effectivement aggravé en utilisant dynamique ici, car il n'y a rien de dynamique à ce sujet: la méthode renvoie jsonObject , ce qui n'a tout simplement pas de foo < / code> membre. Si vous n'aviez pas utilisé dynamique , vous auriez pu obtenir ce message d'erreur lors de la compilation.

Si vous avez un coup d'œil au lien l.b. fourni, il montre comment mettre en œuvre cette fonctionnalité dynamique vous-même.


0 commentaires

10
votes

Eh bien, c'est juste une question de lecture du code source de SimpleJson. :-) Une ligne doit être déconnectée pour soutenir la syntaxe dynamique que je recherche. Je ne sais pas pourquoi cela n'est pas activé par défaut.

à partir du code source: xxx


1 commentaires

C'est un commentaire équitable, L.B. Je ne peux pas supprimer la question, j'espère donc que cela servira d'artefact utile pour les autres qui installent Simplejson via Nuget et courir dans le même problème que moi.



1
votes

> CSC / T: Bibliothèque / D: Simple_Json_Dynamic SimpleJson.cs


0 commentaires