Click here to Skip to main content
15,867,835 members
Articles / Programming Languages / Javascript

Create JSON from C# using JSON Library

Rate me:
Please Sign up or sign in to vote.
4.66/5 (24 votes)
6 May 2010CPOL2 min read 447.2K   22.3K   54   14
Create JSON from C# using JSON library available at CodePlex

Introduction

This article demonstrates how to create the JSON Object from C# code and use in JavaScript with the help of json Library.

Background 

JSON (an acronym for JavaScript Object Notation) is a lightweight text-based open standard designed for human-readable data interchange. It is derived from the JavaScript programming language for representing simple data structures and associative arrays, called objects (the “O” in “JSON”). Despite its relationship to JavaScript, it is language-independent, with parsers available for virtually every programming language. 

Now days AJAX is very famous in web development, and the response for the request created by AJAX normally returns XML. We can also return JSON from the server and the benefit is "we can use the data as object in normal OOPs." 

The Code

To convert any object or object list into JSON, we have to use the function JsonConvert.SerializeObject

The below code demonstrates the use of JSON in an ASP.NET environment: 

C#
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Newtonsoft.Json;
using System.Collections.Generic;

namespace JSONFromCS
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e1)
        {
            List<Employee> eList = new List<Employee>();
            Employee e = new Employee();
            e.Name = "Minal";
            e.Age = 24;

            eList.Add(e);

            e = new Employee();
            e.Name = "Santosh";
            e.Age = 24;

            eList.Add(e);

            string ans = JsonConvert.SerializeObject(eList, Formatting.Indented);

            string script = "var employeeList = {\"Employee\": " + ans+"};";
            script += "for(i = 0;i<employeeList.Employee.length;i++)";
            script += "{";
            script += "alert ('Name : ='+employeeList.Employee[i].Name+' 
			Age : = '+employeeList.Employee[i].Age);";
            script += "}";

            ClientScriptManager cs = Page.ClientScript;
            cs.RegisterStartupScript(Page.GetType(), "JSON", script, true);
        }
    }
    public class Employee
    {
        public string Name;
        public int Age;
    }
}  

After running this program, you will get two alerts as shown in below snapshot: 

How the Code Works 

In the above example, we have created a list of Employee object and passed it to function "JsonConvert.SerializeObject". This function (JSON library) will convert the object list into JSON format. The actual format of JSON can be viewed in the below code snippet:  

C#
{ "Maths" : [ {"Name"     : "Minal",        // First element
                             "Marks"     : 84,
                             "age"       : 23 },
                             {
                             "Name"      : "Santosh",    // Second element
                             "Marks"     : 91,
                             "age"       : 24 }
                           ],                       
              "Science" :  [ 
                             {
                             "Name"      : "Sahoo",     // First Element
                             "Marks"     : 74,
                             "age"       : 27 }, 
                             {							 
                             "Name"      : "Santosh",    // Second Element
                             "Marks"     : 78,
                             "age"       : 41 }
                           ] 
                } 

Syntax:

  • {} - acts as 'containers'
  • [] - holds arrays
  • : - Names and values are separated by a colon
  • , - Array elements are separated by commas

The same code is written to test in Windows platform, and the actual output of the library will look like: 

Points of Interest

This code is meant for intermediate programmers, who want to use C# 2.0 to create JSON and use in ASPX pages.

You can create JSON from JavaScript end, but what would you do to convert the list of object into equivalent JSON string from C#. That's why I have written this article. 

In C# 3.5, there is an inbuilt class used to create JSON named JavaScriptSerializer.   

The following code demonstrates how to use that class to convert into JSON in C#3.5.   

C#
JavaScriptSerializer serializer = new JavaScriptSerializer()
return serializer.Serialize(YOURLIST);   

History 

  • Added advantage and usage of JSON on 6 May 2010

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior) Cognizant Technology Solutions
India India
Having more than 9 years of experience in Programming and web application development.

Writing technical blog articles, learning new Programming languages , frameworks and sharing knowledge with others is one of my hobby. The more I learn, more I understood that how little I know and that drives me to dig into technology and languages to explore.

From last few years now, working on Salesforce platform and providing customer solutions using force.com as an Architect and Technical Lead Role. I have worked on many area of Salesforce like force.com, Heroku, PHP Toolkit, Partner Webservices, Metadata and Enterprise webservices, Tooling API, Customer Portal, Partner Portal, Community, Salesforce1 etc...

Blog:http://www.jitendrazaa.com/blog

Comments and Discussions

 
GeneralMy vote of 1 Pin
Munim Abdul5-May-10 21:20
Munim Abdul5-May-10 21:20 
Useless crap. Considering cutting-edge technologies doesn't mean to think back in the stone age of 2.0.

By the way, using JavaScriptSerializer more than 2 years.
GeneralRe: My vote of 1 Pin
Jitendra Zaa6-May-10 0:55
Jitendra Zaa6-May-10 0:55 
General[My vote of 2] Im not going to vote this down but..... Pin
Argyle4Ever5-May-10 10:00
Argyle4Ever5-May-10 10:00 
GeneralRe: [My vote of 2] Im not going to vote this down but..... Pin
Jitendra Zaa5-May-10 20:03
Jitendra Zaa5-May-10 20:03 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.