A string like
'person = {"firstName": "Brett", "lastName":"McLaughlin", "email":
"brett@newInstance.com" } '
can be deserialized into JSON object using eval. Then can be accessed as simple as person.firstName. Below is a sample javascript code:
var myJSON = 'person = {"firstName": "Brett", "lastName":"McLaughlin",
"email": "brett@newInstance.com" } ' ;
eval(myJSON);
alert(person.firsName + ' ' + person.lastName + ', ' + person.email);
the code above will give a pop-up message saying:
Brett McLaughlin, brett@newInstance.com
Now how can we create a JSON object in C#.net and be able to pass it on clientside? Here is the procedure:
1. Create a struct to be serialized as JSON:
public struct person
{
public string firstName;
public string lastName;
public string email;
}
2. Create a method that will return a serialized JSON object
public string SerializedJSON(object toSerialize, string className)
{
System.Web.Script.Serialization.JavaScriptSerializer jss;
jss = new System.Web.Script.Serialization.JavaScriptSerializer();
objectSystem.Text.StringBuilder sbControls = new
System.Text.StringBuilder();
jss.Serialize(toSerialize, sbControls);
return className + "=" + sbControls.ToString();
}
3. then register the clientside method to call with parameter as JSON serialized string. This may be an attributes of controls event or a a method call on clientside
//as attribute
string serialized = SerializedJSON(person, "person");
button1.Attributes.add("onClick",
"parseJSON('"+ serialized +"')");
//as method call on serverside
ScriptManager.RegisterClientScriptBlock(this,this.GetType(),
"JS
Method Call","parseJSON('"+ serialized +"')", true);
4. Now with those server side code, here is how we do the clientside:
function parseJSON(serializedJSON)
{
eval(serializedJSON);
alert(person.firsName + ' ' + person.lastName + ', ' +
person.email);
}
You can even use JSON on array of objects and be able to call it by index on clientside like
person[0].firstName;
or
person[1].firstName;
I usually use list<object> then serialize it to JSON. And there are many things to explore on JSON and that is what I'm doing right now! Thanks JSON!
links: http://www-128.ibm.com/developerworks/web/library/wa-ajaxintro10/
Excellent article. Very informative, yet simple and easy to follow.
ReplyDeleteHi,
ReplyDeleteI'm newbie in Json. Have u seen VB.net version?
How to retrieve the Data from the JSON Object by filtrating the data with different condition?Can you explain with an example?… in c# 4.0.Pls Reply ASAP
ReplyDeleteThanks in advance...
hi,
ReplyDeleteis there any option to add some extra entries to an already existing JSON file using c#?
Thanks