La tête haute!

Le blog a déménagé!
Si vous souhaitez lire de nouveaux articles, la nouvelle URL est mise en signet http://blog.valeriogheri.com/

Je travaille sur un projet où je n’ai pas besoin d’un modèle de domaine solide car toute la logique est gérée par le code côté client à l’aide de Javascript et de divers frameworks tels que SignalR, Knockout.js et jQuery.
Pour cette raison, je n’étais pas prêt à ajouter des objets C # POCO stupides pour gérer la sérialisation et la désérialisation JSON dans les hubs SignalR, et je me suis tourné vers Dynamic Objects et Json.Net (version 4.0 ou ultérieure) pour effectuer ces tâches complètes rapidement et facilement.

Sérialisation

Par exemple, supposons que je souhaite envoyer des données au navigateur. Tout ce que j’ai à faire est de créer un ExpandoObject (ma nouvelle classe préférée .Net!) Et de le sérialiser avec Json.Net « JsonConvert.SerializeObject () ».

Regardons un exemple:


dynamic foo = new ExpandoObject();
foo.Bar = "something";
string json = Newtonsoft.Json.JsonConvert.SerializeObject(foo);

Et voici la sortie:
« { » Bar « :  » quelque chose « } »

Désérialisation

Json.Net est un excellent moyen de désérialiser une chaîne JSON en une dynamique à l’aide du JObject (vous pouvez le trouver sur Newtonsoft.Json.Linq Espace de noms et Ici les détails).

Regardons un exemple où le précédent objet foo est réutilisé:


dynamic foo = JObject.Parse(jsonText);
string bar = foo.Bar; // bar = "something"

Et c’est tout, vraiment simple et pourtant très puissant.
Dans une application plus structurée, je n’utiliserais probablement pas cette astuce car j’aurais probablement tous mes objets ViewModels et Domain Models prêts pour la sérialisation / désérialisation de type sécurisé, mais ce n’est pas toujours le cas.

J’espère que cela aide.

Valerio



Source link

Recent Posts