Today, I received an email from someone who was not able to use my JavascriptSerializer example to parse out some JSON text. It took me several minutes to realize what I was doing wrong. Here is the JSON text in question:
{
"ListFilterControl": [
{ "filterControlObject": {
"DisplayFieldID": "20",
"ControlDisplayName": "Country",
"ControlType": "TextBox"
}
},
{
"filterControlObject": {
"DisplayFieldID": "21",
"ControlDisplayName": "automobile",
"ControlType": "ComboBox"
}
}]
}
My problem was that the topmost object is an array. In my examples, the topmost object was an object that was NOT an array. Once I realize this, I was able to re-write the classes so that I could parse out the JSON text.
Here are the classes that I used to parse out this text. I hope you find this useful:
/*------------------------------------------------
* Classes needed for deserialization
* ----------------------------------------------*/
/// <summary>
/// Outermost wrapper
/// </summary>
public class jListFilterControlWrapper
{
public jfilterControlObject[] ListFilterControl; // Array of filterControlObjects
}
/// <summary>
/// The filterControlObject items (there is an array of these objects)
/// </summary>
public class jfilterControlObject
{
public jFilterControlProperties filterControlObject; // A filterControlObject contains a FilterControlProperties object
}
/// <summary>
/// The properties of the filterControlObject
/// </summary>
public class jFilterControlProperties
{ // The specific properties you want to use
public string DisplayFieldID { get; set; }
public string ControlDisplayName { get; set; }
public string ControlType { get; set; }
}
I’m looking to parse JSON data that has the following format:
[{"event":"updateTime","data":"2013-09-14 15:45:10.374"}]So it is a top-level array that doesn’t have a key. Thoughts on how to deserialize this?