XML -> JSON Serialization

Michael Schwarz on Monday, June 19, 2006

With the next release of Ajax.NET Professional you will be able to transform any XmlDocument or XmlNode into a JSON object. This is really cool because we have already a lot of xml documents in our web applications. Currently you have to write a custom class or struct where you have to fill the properties or public fields. Now, you simply call the JavaScriptUtil.GetIJavaScriptObjectFromXmlNode method to return a JavaScript object. At http://munich.schwarz-interactive.de/datatype.aspx [1] I have added a new test (Test 32) which will read the RSS from the Google group and display the title and last 10 posts.

My C# server-side source code looks like this:

AjaxPro.AjaxMethod] public static AjaxPro.IJavaScriptObject Test31() { XmlDocument doc = new XmlDocument(); doc.Load("[http://groups.google.de/group/ajaxpro/feed/rss_v2_0_msgs.xml [2]"); return AjaxPro.JavaScriptUtil.GetIJavaScriptObjectFromXmlNode(doc.DocumentElement); }

The RSS xml document looks like this:

<rss version="2.0"> <channel> <title>Ajax.NET Professional Google Group</title> <link>http://groups.google.com/group/ajaxpro</link> <item> <title>Re: [ajaxpro] Title of post</title> // ... </item> <item> // ... </item> </channel> </rss>

Now, you are able to write JavaScript code like this:

<script type="text/javascript">

function callback(res) { var chn = res.value.channel; alert("The RSS channel title: " + chn.title + "\r\nLink: " + chn.link);

var h = [];

for(var i=0; i<chn.item.length; i++) { h.push(chn.item[i].title + "\r\n"); }

alert(h.join("")); }

</script>