Introduction
This article explains how to convert a DataTable to JSON in ASP.NET C#. In other words, how to serialize a DataTable to a JSON array in C#. In other words, how to return a JSON String from a DataTable in ASP.NET C#. There are 3 ways to do this, and they are using StringBuilder, JavaScriptSerializer, or using JSON.Net DLL (from Newtonsoft).
What is JSON?
JavaScript Object Notation (JSON) is a lightweight data interchange format. It is easy for humans to read and write and easy for machines to parse and generate.
JSON is a text format that is completely language-independent but uses conventions that are familiar to programmers of the C family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and so on.
These properties make JSON an ideal data-interchange language. Because of that, JSON has become a popular format for data interchange in AJAX-based applications.
In short, JSON is a syntax for storing and exchanging data. JSON is an easier-to-use alternative to XML.
The following is the procedure for converting a DataTable to a JSON object in C#.
- Convert DataTable to JSON using StringBuilder.
- Convert DataTable to JSON using JavaScriptSerializer.
- Convert DataTable to JSON using JSON.Net DLL.
Using any one of the preceding methods will serialize a .NET DataTable to a JSON String in C#.
First, we will get records from the database (Microsoft SQL Server) into a DataTable, or we can also add dynamic rows to our DataTable. So our code looks as in the following:
public DataTable GetData()
{
DataTable dt = new DataTable();
// Adding columns to the DataTable
dt.Columns.Add("UserId", typeof(Int32));
dt.Columns.Add("UserName", typeof(string));
dt.Columns.Add("Education", typeof(string));
dt.Columns.Add("Location", typeof(string));
// Adding rows to the DataTable
dt.Rows.Add(1, "Satinder Singh", "Bsc Com Sci", "Mumbai");
dt.Rows.Add(2, "Amit Sarna", "Mstr Com Sci", "Mumbai");
dt.Rows.Add(3, "Andrea Ely", "Bsc Bio-Chemistry", "Queensland");
dt.Rows.Add(4, "Leslie Mac", "MSC", "Town-ville");
dt.Rows.Add(5, "Vaibhav Adhyapak", "MBA", "New Delhi");
return dt;
}
Then convert the DataTable into a JSON object using any of the previous methods that return the JSON object. Let’s go through each method step-by-step.
Method 1. Convert DataTable to JSON using StringBuilder
This is how the JSON sample data looks: {"firstName": "Satinder", "lastName": "Singh"}.
JSON objects are written inside curly braces and can contain multiple name/value pairs.
So using StringBuilder, we can create a similar JSON Structured String.
Since we are using StringBuilder, we need to import the System. Text namespace in our page as in the following:
Using System.Text; 
Controller SYRPosted Feb 4, 2022, 6:22 PM
Thanks alot
Mady NDiayePosted Nov 14, 2021, 8:21 AM
Method1: 29Milliseconds=======Method2: 88Milliseconds=======Method3: 182Milliseconds
Dharmendra Kumar PanditPosted Oct 24, 2020, 10:07 AM
Thank you sir. I used 2nd method in c# and done my requirement successfully. thank you.
NavyaSri ChirumamilaPosted Mar 16, 2020, 6:29 AM
Good explanation
Dharmendra Kumar PanditPosted Sep 19, 2019, 2:29 AM
Thank you sir. I'm using your Method 1. but it returns a string. Now I have to use this string in javascript. How can I do it. Help me if any reference.
Faheem SialPosted Jul 31, 2019, 8:35 AM
Simple deserialize causes error, it will work if u do it as (VB.Net): Dim DT2 as DataTable = Newtonsoft.Json.JsonConvert.DeserializeObject(JSONString, GetType(DataTable))
Tushar ShankerwalPosted May 29, 2019, 1:05 PM
Mera to ho he nhi raha sir, error aa raha hai.
Sanjay GuptaPosted Nov 13, 2018, 12:24 AM
I am trying the same code in asp.net WCF service but I am getting double quotes escaped with backslash...how to rectify it
jcb jcbPosted Jul 6, 2018, 3:53 AM
Good. thank you
Michael DeePosted Sep 26, 2017, 12:05 PM
Great Info - One small typo * JsonConvert.SerializeObject(table);
Ronak KhilosiyaPosted Jul 26, 2017, 5:57 AM
Hello Satinder Singh, Thank you for make the difference 3 method of converting Datatable to JSON, But which method performed fast from all of above.
Sajid HussainPosted May 18, 2017, 1:33 AM
GREAT SarDar Gee!!!
Seth ONealPosted Apr 10, 2017, 10:18 AM
Great Article Santinder! Thank you!
AungthuPosted Oct 12, 2016, 12:04 AM
Very good article. It saved a lot of time for me. Thank You.
Vitali KabarguinePosted Jun 15, 2016, 3:53 PM
Wht have 3 lines in the last method, just 1 line is sufficient
Sonu ChaudharyPosted Mar 7, 2016, 1:14 AM
how can we convert Datatable at clinet side in Json Format
Santhakumar MunuswamyPosted Aug 22, 2015, 7:56 AM
Good Article. Thanks for sharing
Ankit BansalPosted Aug 20, 2015, 1:44 AM
good one...
RakeshPosted Aug 19, 2015, 11:25 PM
Good start
Shridhar SharmaPosted Aug 19, 2015, 3:22 PM
nice demo
sreenivasa kPosted Aug 19, 2015, 12:08 PM
nice one
Vipul MalhotraPosted Aug 19, 2015, 7:48 AM
nice article
Nilesh JadavPosted Aug 19, 2015, 7:25 AM
Nice one sir
Sibeesh VenuPosted Aug 19, 2015, 6:53 AM
Nice Share
Yashwanth MuthineniPosted Aug 19, 2015, 6:19 AM
Nice Share
Gopi ChandPosted Aug 19, 2015, 5:59 AM
Nice start...Good luck ! :)
Satinder SinghPosted Aug 19, 2015, 5:55 AM
Thanks all, this was my 1st post, and more are on the way :)
Vaikesh K PPosted Aug 19, 2015, 5:52 AM
Nice.
Karthikeyan KPosted Aug 19, 2015, 5:35 AM
Good one sir...Thanks for share
Gowtham KPosted Aug 19, 2015, 5:34 AM
Good one
Manas MohapatraPosted Aug 19, 2015, 5:20 AM
Great Work!