JsonToDynamic: Consuming Json Data as Dynamic Objects in C# 4.0
About a month ago I was reading the early access edition of C# in Depth, Second Edition from Jon Skeet. In this book the auto demonstrates using dynamic objects and the dynamic keyword in C# using a wrapper around an xml document. Suppose you have a xml document containing a number of books
Now you can access the auto properties of each book in the following way:
Having been using Json intensively the last few weeks and seeing how easy it is to consume Json in JavaScript, I thought dynamic object would be a fantastic way to make Json more natural in the .Net world. My favorite Json library is the Json.Net. Since, I started to code a wrapper about it.
Suppose now you have such an object, that you have Json serialized:
After deserializing it back to a dynamic object you can access as easy as:
<book> <autor>The Autor</autor> </boo>
dynamic book = GetBookAsDynamic(); string autoName = book.autor
var obj = new { Name = "mouk", FavoriteNames = new[] { "mouk", "dermouk", "mouk9000" }, NestedValues = new { First = 1, Second = 3, Nums = new[] { 1, 2, 3 } }, NestedArray = new object[]{ 1, 3, new[] { 100, 2, 3 } }, Age = 25, Height = 180 }; var serializedObject = JsonConvert.SerializeObject(obj);
dynamic _deserializedObject = JsonDeserilizer.GetObjectFromString(serializedObject); string name= _deserializedObject.Name; int age = _deserializedObject.Age; int nested = _deserializedObject.NestedArray[1];
Source Code
The source code of this wrapper can be downloaded from http://github.com/mouk/JsonToDynamic/tree/master:
September 12, 2009
|
Tags : C# Dynamic Programming
Tweet
About Me
This blog is kept alive by me, Moukarram Kabbash, a programmer, hobby photographer from Dortmund in Germany.
mouk.github.com