In this blog we will learn about creating complex JSON structure using List and Dictionary.
Before we start I assume that you have basic idea about Dictionary and List. If not please check out this video.
Dictionary in C#
Now let's start!
First of all I'm going to show you a JSON structure which I want to create.
Please observe above Json structure.
Note: To create a Json string I used Jayrock.JSON dll which is open source.
Don't forget to subscribe me!
For More Updates stay connected On : Learn2All Facebook Page
Amazing Concepts in Video : Video On YouTube
If you still have any doubts related this concept mail me at
dhruvinshah16@gmail.com
Before we start I assume that you have basic idea about Dictionary and List. If not please check out this video.
Dictionary in C#
Now let's start!
First of all I'm going to show you a JSON structure which I want to create.
Please observe above Json structure.
[{
"UserId": "0",
"ResorceName": "Employee 0",
"TimeRecords": [{
"Date": "2016-10-25",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-10-26",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-10-27",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-10-28",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-10-29",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-10-30",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-10-31",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-01",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-02",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-03",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-04",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-05",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-06",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-07",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-08",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-09",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-10",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-11",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-12",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-13",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-14",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-15",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-16",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-17",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-18",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-19",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-20",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-21",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-22",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-23",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-24",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-25",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-26",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-27",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-28",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-29",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-30",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-01",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-02",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-03",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-04",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-05",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-06",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-07",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-08",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-09",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-10",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-11",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-12",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-13",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-14",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-15",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-16",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-17",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-18",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-19",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-20",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-21",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-22",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-23",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}]
}, {
"UserId": "1",
"ResorceName": "Employee 1",
"TimeRecords": [{
"Date": "2016-10-25",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-10-26",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-10-27",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-10-28",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-10-29",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-10-30",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-10-31",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-01",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-02",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-03",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-04",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-05",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-06",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-07",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-08",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-09",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-10",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-11",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-12",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-13",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-14",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-15",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-16",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-17",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-18",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-19",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-20",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-21",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-22",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-23",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-24",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-25",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-26",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-27",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-28",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-29",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-11-30",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-01",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-02",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-03",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-04",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-05",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-06",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-07",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-08",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-09",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-10",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-11",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-12",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-13",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-14",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-15",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-16",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-17",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-18",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-19",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-20",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-21",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-22",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}, {
"Date": "2016-12-23",
"Tasks": ["Task 0", "Task 1", "Task 2", "Task 3", "Task 4", "Task 5"]
}]
}]
Points to remember before we start.- Key - Value Pair always added in dictionary.
- List values are can be added in dictionary to give Key to List values.
- Combination of List + Dictionary should be added in List having Dictionary.
Above three components are key component to create any Kind of JSON structure.
Now Let's check C# Code.
protected void Button1_Click(object sender, EventArgs e)
{
DateTime currentDate = DateTime.Now;
DateTime startDate = currentDate.AddDays(-30);
DateTime enddate = currentDate.AddDays(30);
int resId = 0;
string resname = string.Empty;
List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>(); //<<1>>
Dictionary<string, object> row; //<<2>>
for (int i = 0; i <= 2; i++)
{
row = new Dictionary<string, object>();
resId = Convert.ToInt32(i.ToString());
resname = Convert.ToString("Employee " + i.ToString());
row.Add("UserId", resId.ToString());
row.Add("ResorceName", resname);
List<Dictionary<string, object>> TimeMode = new List<Dictionary<string, object>>(); //<<3>>
for (DateTime date = startDate; date < enddate; date = date.AddDays(1.0))
{
Dictionary<string, object> modes; // <<4>>
modes = new Dictionary<string, object>();
DateTime mydate = new DateTime(1900, 01, 01);
string cDate1 = date.ToString("yyyy-MM-dd");
string cDate2 = mydate.ToString("yyyy-MM-dd");
modes.Add("Date", cDate1);
List<string> taskss = new List<string>(); // <<5>>
for (int k = 0; k <= 5; k++)
{
taskss.Add("Task " + k.ToString());
}
modes.Add("Tasks", taskss);
TimeMode.Add(modes);
}
row.Add("TimeRecords", TimeMode);
rows.Add(row);
}
string x = giveJson(rows);
}
private string giveJson(object convertme)
{
string jstr = JsonConvert.ExportToString(convertme);
return jstr;
}
Note: To create a Json string I used Jayrock.JSON dll which is open source.
In above code snippet observe Bold lines and look at our JSON structure.
Now let's discuss about it .
From JSON observe a Key Tasks which have a List like Task 1 ,Task 2.. to create a List we took List tasks in code. Observe <<5>> from bold letter from above snippet.
Now to give key to Tasks we need one Dictionary so we used a dictionary named modes. Observe <<4>> from bold letter from above snippet.
Now let's discuss about it .
From JSON observe a Key Tasks which have a List like Task 1 ,Task 2.. to create a List we took List tasks in code. Observe <<5>> from bold letter from above snippet.
Now to give key to Tasks we need one Dictionary so we used a dictionary named modes. Observe <<4>> from bold letter from above snippet.
Now cobination of Date and Tasks should be added having a Key TimeRecords. To achieve this we took List having Dictionary Timemode . Observe <<3>> from above code snippet.
To add Keys Like UserId , ResorceName ,TimeRecords we have a dictionary row . Observe <<2>> from above code snippet.
And finally all the keys are added in one Final List having Dictionary named rows. Observe <<1>> from above code snippet.
Here giveJSON() function will return Json string. This function uses core function from Jayrock.Json dll.
Don't forget to subscribe me!
For More Updates stay connected On : Learn2All Facebook Page
Amazing Concepts in Video : Video On YouTube
Download a Code Using this Link : Share JsonDemo.zip - 74 KB
If you still have any doubts related this concept mail me at
dhruvinshah16@gmail.com
Comments
Post a Comment