Right now my json looks easy and there is one object. suppose there would be many object in json then how could i parse it.
Now my json looks like
var jsonText = @"{
""some_number"": 108.541,
""date_time"": ""2011-04-13T15:34:09Z"",
""serial_number"": ""SN1234"",
""more_data"": {
""field1"": 1.0,
""field2"": ""hello""
}
}";
i am parsing it this way
var jss = new JavaScriptSerializer();
var dict = jss.Deserialize<dynamic>(jsonText);
Console.WriteLine(dict["some_number"]);
Console.WriteLine(dict["more_data"]["field2"]);
Console.ReadLine();
when there will be nested object in each ordinal of json array then how could i parse with JavaScriptSerializer
?
Suppose my json look bit complicated like below then how could i parse it by JavaScriptSerializer.
var jsonText = @"data[
{
""some_number"": 108.541,
""date_time"": ""2011-04-13T15:34:09Z"",
""serial_number"": ""SN1234"",
""more_data"": {
""field1"": 1.0,
""field2"": ""hello""
},
""Hobbies"" : [""game1"",""game2"",""game3""]
},
{
""some_number"": 200.541,
""date_time"": ""2012-04-11T15:34:09Z"",
""serial_number"": ""SN3333"",
""more_data"": {
""field1"": 2.0,
""field2"": ""hello1""
},
""Hobbies"" : [""game4"",""game5"",""game6""]
}]";
var jss = new JavaScriptSerializer();
var dict = jss.Deserialize<dynamic>(jsonText);
Console.WriteLine(dict["some_number"]);
Console.WriteLine(dict["more_data"]["field2"]);
Console.ReadLine();
please tell me how could i parse the above json with JavaScriptSerializer. Thanks
Change the json as per your guidance. now tell me does it look right?
var jsonText = @"{ ""data""[
{
""some_number"": 108.541,
""date_time"": ""2011-04-13T15:34:09Z"",
""serial_number"": ""SN1234"",
""more_data"": {
""field1"": 1.0,
""field2"": ""hello""
},
""Hobbies"" : [""game1"",""game2"",""game3""]
},
{
""some_number"": 200.541,
""date_time"": ""2012-04-11T15:34:09Z"",
""serial_number"": ""SN3333"",
""more_data"": {
""field1"": 2.0,
""field2"": ""hello1""
},
""Hobbies"" : [""game4"",""game5"",""game6""]
}]}";
Your jsonText is not a valid json. You probably need something like:
var jsonText = @"{
""data"":[
{......
make your json valid and the JavaScriptSerializer will work.
Edit
If I am guessing right,, your object needs to be
var jsonText = @"{""data"":[
{
""some_number"": 108.541,
""date_time"": ""2011-04-13T15:34:09Z"",
""serial_number"": ""SN1234"",
""more_data"": {
""field1"": 1.0,
""field2"": ""hello""
},
""Hobbies"" : [""game1"",""game2"",""game3""]
},
{
""some_number"": 200.541,
""date_time"": ""2012-04-11T15:34:09Z"",
""serial_number"": ""SN3333"",
""more_data"": {
""field1"": 2.0,
""field2"": ""hello1""
},
""Hobbies"" : [""game4"",""game5"",""game6""]
}]}";
so now you can access your object like...
dict["data"] //which is your array containing your two objects
dict["data"][0]["some_number"] //eg first object property
dict["data"][1]["more_data"]["field2"] //second object property...
use your watch panel to debug your object.. You should create a model to cast your object into your models. Having unknown models should be avoided unless needed.