Viewed 1926 times

I've found ScriptingJsonSerializationSection but I'm not sure how to use it. I could write a function to convert the object to a JSON string manually, but since .Net can do it on the fly with the <System.Web.Services.WebMethod()> and <System.Web.Script.Services.ScriptMethod()> attributes so there must be a built-in way that I'm missing.

PS: using Asp.Net 2.0 and VB.Net - I put this in the tags but I think people missed it.

6 answers given for "Is there a built in way in .Net AJAX to manually serialize an object to a JSON string?"

Accepted Solution

This should do the trick

Dim jsonSerialiser As New System.Web.Script.Serialization.JavaScriptSerializer
Dim jsonString as String = jsonSerialiser.Serialize(yourObject)

I think what you're looking for is this class:


Here's an example from Rick Strahl: DataContractJsonSerializer in .NET 3.5

Since the JavaScriptSerializer class is technically being deprecated, I believe DataContractJsonSerializer is the preferable way to go if you're using 3.0+.

Well, I am currently using the following extension methods to serialize and deserialize objects:

using System.Web.Script.Serialization;

public static string ToJSON(this object objectToSerialize)
  JavaScriptSerializer jss = new JavaScriptSerializer();
  return jss.Serialize(objectToSerialize);

/// <typeparam name="T">The type we are deserializing the JSON to.</typeparam>
public static T FromJSON<T>(this string json)
  JavaScriptSerializer jss = new JavaScriptSerializer();
  return jss.Deserialize<T>(json);

I use this quite a bit - be forewarned, this implementation is a bit naive (i.e. there are some potential problems with it, depending on what you are serializing and how you use it on the client, particularly with DateTimes).

In the System.Web.Extensions assembly, version, there's a JavaScriptSerializer class that should handle what you want.



or Check out there is a whole list of libraries written to do exactly what you want.