Wrox Programmer Forums

Need to download code?

View our list of code downloads.

Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read
BOOK: Professional Ajax 2nd Edition ISBN: 978-0-470-10949-6
This is the forum to discuss the Wrox book Professional Ajax, 2nd Edition by Nicholas C. Zakas, Jeremy McPeak, Joe Fawcett; ISBN: 9780470109496
Welcome to the p2p.wrox.com Forums.

You are currently viewing the BOOK: Professional Ajax 2nd Edition ISBN: 978-0-470-10949-6 section of the Wrox Programmer to Programmer discussions. This is a community of tens of thousands of software programmers and website developers including Wrox book authors and readers. As a guest, you can read any forum posting. By joining today you can post your own programming questions, respond to other developersí questions, and eliminate the ads that are displayed to guests. Registration is fast, simple and absolutely free .
DRM-free e-books 300x50
Reply
 
Thread Tools Display Modes
  #1 (permalink)  
Old March 11th, 2009, 11:33 AM
Registered User
 
Join Date: Mar 2009
Posts: 3
Thanks: 1
Thanked 0 Times in 0 Posts
Default C# and JSON

I decided to buy a copy of Professional Ajax because it focuses on a few technologies and techniques that I want to learn. I was also impressed with nzakas and jminatel's professionalism while facing unfounded criticism.

jminatel: I apologize for the statements in my post that required editing. I will make note of your rules and do my best to abide by them.

My question doesn't really pertain to the subject matter in the book, but rather recommendations made in it. I am learning C#, and in chapter 8 you recommend the JSON.NET library found at http://www.newtonsoft.com/products/json. Has that recommendation changed in the past three years? Are there better alternatives to JSON.NET?
Reply With Quote
  #2 (permalink)  
Old March 11th, 2009, 02:10 PM
jmcpeak's Avatar
Wrox Author
Points: 467, Level: 7
Points: 467, Level: 7 Points: 467, Level: 7 Points: 467, Level: 7
Activity: 0%
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Nov 2005
Location: , Texas, USA.
Posts: 87
Thanks: 0
Thanked 18 Times in 17 Posts
Default

Howdy, Throp.

We used the Json.NET library throughout the book, so if want to follow the code I recommend the version of Json.NET supplied in the code download. The DLL is in the bin folders wherever we used it.

If your inquiry is for your own projects, I’ll disclaim this post by saying I haven’t used many JSON libraries for .NET. We used one library (Nii.JSON.dll) for the first edition of Professional Ajax, and we switched to Json.NET for the second edition. The only other JSON serializer/deserializer I’ve used is what Microsoft added to the CLI for .NET 3.0. My personal recommendations are as follows:

.NET 1.1 – Nii.JSON found at http://www.json.org/cs.zip

.NET 2.0 – Eearly versions of Json.NET http://www.codeplex.com/json

.NET 3.5 (what I’ll focus on since it’s the latest version of .NET) – Either Json.NET or the classes in the System.Runtime.Serialization.Json namespace. I prefer Json.NET. It’s nice when Microsoft adds support for any technology to .NET, but their additions are typically and unfortunately basic. Anything more advanced requires you to either find a third party library or roll your own library. I find more value in Json.NET than I do in the System.Runtime.Serialization.Json namespace. It’s also worth mentioning that I use LINQ like it’s going out of style, and I find the LINQ to JSON features very handy.

Features aside, serializing objects and deserializing JSON text is much simpler with Json.NET.
Code:
// Json.NET Serializing
string json = JavaScriptConvert.SerializeObject(myObj);

// Json.NET Deserializing
MyObj deserializedObj = JavaScriptConvert.DeserializeObject<MyObj>(json);

// System.Runtime.Serialization.Json.DataContractJsonSerializer Serializing
DataContractJsonSerializer serializer = new DataContractJsonSerializer(myObj.GetType());
using (MemoryStream ms = new MemoryStream())
{
    serializer.WriteObject(ms, myObj);
    string json = Encoding.Default.GetString(ms.ToArray());
}

// System.Runtime.Serialization.Json.DataContractJsonSerializer Deserializing
MyObj myObj = new MyObj();
using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(json)))
{
    DataContractJsonSerializer serializer = new DataContractJsonSerializer(myObj.GetType());
    myObj = serializer.ReadObject(ms) as MyObj;
}
So to answer your question, it’s ultimately up to you. It’s always good to know how to use the tools Microsoft provides you; use it if their implementation is sufficient for your needs. If it is, you can always write a helper class leveraging the power of generics to make serializing and deserializing less painful and more like Json.NET’s API.

I hope this helps you determine what route you want to take.

Last edited by jmcpeak; March 11th, 2009 at 02:13 PM. Reason: Added link to Json.NET at CodePlex
Reply With Quote
The Following User Says Thank You to jmcpeak For This Useful Post:
throp (March 12th, 2009)
  #3 (permalink)  
Old March 12th, 2009, 11:51 AM
Registered User
 
Join Date: Mar 2009
Posts: 3
Thanks: 1
Thanked 0 Times in 0 Posts
Default

Thanks for the reply, jmcpeak. I think I will stick with JSON.NET. It is nice to know that the .NET Framework has JSON functionality.

Last edited by throp; March 12th, 2009 at 11:53 AM.
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
JSON-PHP v. PHP-JSON bcrocks BOOK: Professional Ajax ISBN: 978-0-471-77778-6 2 August 17th, 2011 08:52 AM
C# JSON Library radhakrishnane BOOK: Professional Ajax ISBN: 978-0-471-77778-6 2 January 21st, 2009 09:36 AM
C# object to/from JSON possible?!? quantass BOOK: Beginning Ajax with ASP.NET 1 January 21st, 2009 09:32 AM
JSON and ScriptService balesh.mind ASP.NET 3.5 Basics 0 December 4th, 2008 08:14 AM
JSON problem with accentuation jlamas Ajax 0 September 8th, 2006 08:25 AM



All times are GMT -4. The time now is 05:39 PM.


Powered by vBulletin®
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
© 2013 John Wiley & Sons, Inc.