I am trying to parse the following data from json using json.net but cause its not going to the object I created. I am trying to use the following any ideas how I would parse the below json file into my object correctly.
At the moment if i used objects its only returning me the nodes then the enclosed jsont in a string.
public FormClass GetJsonFormDataFromService()
{
StreamReader re = new StreamReader("FormDataJason.json");
JsonTextReader reader = new JsonTextReader(re);
FormClass formClass = JsonConvert.DeserializeObject<FormClass>(reader.ToString());
return formClass;
}
JsonCode
{
"ArrayOfArrayOfClassDetails": {
"-xmlns:xsi": "http://ift.tt/ra1lAU",
"-xmlns:xsd": "http://ift.tt/tphNwY",
"-xmlns": "http://tempuri.org/",
"ArrayOfClassDetails": [
{
"ClassDetails": {
"name": "DisplayName",
"displayName": "Display Name",
"parent": "Object",
"type": "System.String",
"length": "4000",
"key": "false",
"required": "false"
}
},
{
"ClassDetails": [
{
"name": "Id",
"displayName": "ID",
"parent": "Work Item",
"type": "System.String",
"length": "256",
"key": "true",
"required": "false"
},
{
"name": "Title",
"displayName": "Title",
"parent": "Work Item",
"type": "System.String",
"length": "200",
"key": "false",
"required": "false"
},
{
"name": "Description",
"displayName": "Description",
"parent": "Work Item",
"type": "System.String",
"length": "4000",
"key": "false",
"required": "false"
},
{
"name": "ContactMethod",
"displayName": "Alternate contact method",
"parent": "Work Item",
"type": "System.String",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "CreatedDate",
"displayName": "Created date",
"parent": "Work Item",
"type": "System.DateTime",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "ScheduledStartDate",
"displayName": "Scheduled start date",
"parent": "Work Item",
"type": "System.DateTime",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "ScheduledEndDate",
"displayName": "Scheduled end date",
"parent": "Work Item",
"type": "System.DateTime",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "ActualStartDate",
"displayName": "Actual start date",
"parent": "Work Item",
"type": "System.DateTime",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "ActualEndDate",
"displayName": "Actual end date",
"parent": "Work Item",
"type": "System.DateTime",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "IsDowntime",
"displayName": "Is Downtime",
"parent": "Work Item",
"type": "System.Boolean",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "IsParent",
"displayName": "Is parent",
"parent": "Work Item",
"type": "System.Boolean",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "ScheduledDowntimeStartDate",
"displayName": "Scheduled Downtime Start Date",
"parent": "Work Item",
"type": "System.DateTime",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "ScheduledDowntimeEndDate",
"displayName": "Scheduled Downtime End Date",
"parent": "Work Item",
"type": "System.DateTime",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "ActualDowntimeStartDate",
"displayName": "Actual Downtime Start Date",
"parent": "Work Item",
"type": "System.DateTime",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "ActualDowntimeEndDate",
"displayName": "Actual Downtime End Date",
"parent": "Work Item",
"type": "System.DateTime",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "RequiredBy",
"displayName": "Required By",
"parent": "Work Item",
"type": "System.DateTime",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "PlannedCost",
"displayName": "Planned Cost",
"parent": "Work Item",
"type": "System.Double",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "ActualCost",
"displayName": "Actual Cost",
"parent": "Work Item",
"type": "System.Double",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "PlannedWork",
"displayName": "Planned Work Hours",
"parent": "Work Item",
"type": "System.Double",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "ActualWork",
"displayName": "Actual Work Hours",
"parent": "Work Item",
"type": "System.Double",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "UserInput",
"displayName": "User Input",
"parent": "Work Item",
"type": "System.String",
"length": "65536",
"key": "false",
"required": "false"
},
{
"name": "FirstAssignedDate",
"displayName": "First assigned date",
"parent": "Work Item",
"type": "System.DateTime",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "FirstResponseDate",
"displayName": "First response date",
"parent": "Work Item",
"type": "System.DateTime",
"length": "256",
"key": "false",
"required": "false"
}
]
},
{
"ClassDetails": [
{
"name": "Priority",
"displayName": "Priority",
"parent": "Trouble Ticket",
"type": "System.Int32",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "Impact",
"displayName": "Impact",
"parent": "Trouble Ticket",
"type": "System.Enum",
"length": "256",
"key": "false",
"required": "true",
"enumType": "11756265-f18e-e090-eed2-3aa923a4c872"
},
{
"name": "Urgency",
"displayName": "Urgency",
"parent": "Trouble Ticket",
"type": "System.Enum",
"length": "256",
"key": "false",
"required": "true",
"enumType": "04b28bfb-8898-9af3-009b-979e58837852"
},
{
"name": "ClosedDate",
"displayName": "Closed date",
"parent": "Trouble Ticket",
"type": "System.DateTime",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "ResolvedDate",
"displayName": "Resolved date",
"parent": "Trouble Ticket",
"type": "System.DateTime",
"length": "256",
"key": "false",
"required": "false"
}
]
},
{
"ClassDetails": [
{
"name": "TargetResolutionTime",
"displayName": "Resolve by",
"parent": "Incident",
"type": "System.DateTime",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "Escalated",
"displayName": "Escalated",
"parent": "Incident",
"type": "System.Boolean",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "Source",
"displayName": "Source",
"parent": "Incident",
"type": "System.Enum",
"length": "256",
"key": "false",
"required": "false",
"enumType": "5d59071e-69b3-7ef4-6dee-aacc5b36d898"
},
{
"name": "Status",
"displayName": "Status",
"parent": "Incident",
"type": "System.Enum",
"length": "256",
"key": "false",
"required": "false",
"enumType": "89b34802-671e-e422-5e38-7dae9a413ef8"
},
{
"name": "ResolutionDescription",
"displayName": "Resolution description",
"parent": "Incident",
"type": "System.String",
"length": "4000",
"key": "false",
"required": "false"
},
{
"name": "NeedsKnowledgeArticle",
"displayName": "Needs knowledge article",
"parent": "Incident",
"type": "System.Boolean",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "TierQueue",
"displayName": "Support group",
"parent": "Incident",
"type": "System.Enum",
"length": "256",
"key": "false",
"required": "false",
"enumType": "c3264527-a501-029f-6872-31300080b3bf"
},
{
"name": "HasCreatedKnowledgeArticle",
"displayName": "Has created knowledge article",
"parent": "Incident",
"type": "System.Boolean",
"length": "256",
"key": "false",
"required": "false"
},
{
"name": "LastModifiedSource",
"displayName": "Last modified source",
"parent": "Incident",
"type": "System.Enum",
"length": "256",
"key": "false",
"required": "false",
"enumType": "5d59071e-69b3-7ef4-6dee-aacc5b36d898"
},
{
"name": "Classification",
"displayName": "Classification category",
"parent": "Incident",
"type": "System.Enum",
"length": "256",
"key": "false",
"required": "false",
"enumType": "1f77f0ce-9e43-340f-1fd5-b11cc36c9cba"
},
{
"name": "ResolutionCategory",
"displayName": "Resolution category",
"parent": "Incident",
"type": "System.Enum",
"length": "256",
"key": "false",
"required": "false",
"enumType": "72674491-02cb-1d90-a48f-1b269eb83602"
}
]
}
]
}
}
My Class POCO Is defined as follows
public class FormClass
{
public string name { get; set; }
public string displayName { get; set; }
public string length { get; set; }
public Boolean key { get; set; }
public Boolean required { get; set; }
}
The Following is my orginal XML i used http://ift.tt/1na4Fcz to convert the xml below into json?
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfArrayOfClassDetails xmlns:xsi="http://ift.tt/ra1lAU" xmlns:xsd="http://ift.tt/tphNwY" xmlns="http://tempuri.org/">
<ArrayOfClassDetails>
<ClassDetails>
<name>DisplayName</name>
<displayName>Display Name</displayName>
<parent>Object</parent>
<type>System.String</type>
<length>4000</length>
<key>false</key>
<required>false</required>
</ClassDetails>
</ArrayOfClassDetails>
<ArrayOfClassDetails>
<ClassDetails>
<name>Id</name>
<displayName>ID</displayName>
<parent>Work Item</parent>
<type>System.String</type>
<length>256</length>
<key>true</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>Title</name>
<displayName>Title</displayName>
<parent>Work Item</parent>
<type>System.String</type>
<length>200</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>Description</name>
<displayName>Description</displayName>
<parent>Work Item</parent>
<type>System.String</type>
<length>4000</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>ContactMethod</name>
<displayName>Alternate contact method</displayName>
<parent>Work Item</parent>
<type>System.String</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>CreatedDate</name>
<displayName>Created date</displayName>
<parent>Work Item</parent>
<type>System.DateTime</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>ScheduledStartDate</name>
<displayName>Scheduled start date</displayName>
<parent>Work Item</parent>
<type>System.DateTime</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>ScheduledEndDate</name>
<displayName>Scheduled end date</displayName>
<parent>Work Item</parent>
<type>System.DateTime</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>ActualStartDate</name>
<displayName>Actual start date</displayName>
<parent>Work Item</parent>
<type>System.DateTime</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>ActualEndDate</name>
<displayName>Actual end date</displayName>
<parent>Work Item</parent>
<type>System.DateTime</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>IsDowntime</name>
<displayName>Is Downtime</displayName>
<parent>Work Item</parent>
<type>System.Boolean</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>IsParent</name>
<displayName>Is parent</displayName>
<parent>Work Item</parent>
<type>System.Boolean</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>ScheduledDowntimeStartDate</name>
<displayName>Scheduled Downtime Start Date</displayName>
<parent>Work Item</parent>
<type>System.DateTime</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>ScheduledDowntimeEndDate</name>
<displayName>Scheduled Downtime End Date</displayName>
<parent>Work Item</parent>
<type>System.DateTime</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>ActualDowntimeStartDate</name>
<displayName>Actual Downtime Start Date</displayName>
<parent>Work Item</parent>
<type>System.DateTime</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>ActualDowntimeEndDate</name>
<displayName>Actual Downtime End Date</displayName>
<parent>Work Item</parent>
<type>System.DateTime</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>RequiredBy</name>
<displayName>Required By</displayName>
<parent>Work Item</parent>
<type>System.DateTime</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>PlannedCost</name>
<displayName>Planned Cost</displayName>
<parent>Work Item</parent>
<type>System.Double</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>ActualCost</name>
<displayName>Actual Cost</displayName>
<parent>Work Item</parent>
<type>System.Double</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>PlannedWork</name>
<displayName>Planned Work Hours</displayName>
<parent>Work Item</parent>
<type>System.Double</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>ActualWork</name>
<displayName>Actual Work Hours</displayName>
<parent>Work Item</parent>
<type>System.Double</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>UserInput</name>
<displayName>User Input</displayName>
<parent>Work Item</parent>
<type>System.String</type>
<length>65536</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>FirstAssignedDate</name>
<displayName>First assigned date</displayName>
<parent>Work Item</parent>
<type>System.DateTime</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>FirstResponseDate</name>
<displayName>First response date</displayName>
<parent>Work Item</parent>
<type>System.DateTime</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
</ArrayOfClassDetails>
<ArrayOfClassDetails>
<ClassDetails>
<name>Priority</name>
<displayName>Priority</displayName>
<parent>Trouble Ticket</parent>
<type>System.Int32</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>Impact</name>
<displayName>Impact</displayName>
<parent>Trouble Ticket</parent>
<type>System.Enum</type>
<length>256</length>
<key>false</key>
<required>true</required>
<enumType>11756265-f18e-e090-eed2-3aa923a4c872</enumType>
</ClassDetails>
<ClassDetails>
<name>Urgency</name>
<displayName>Urgency</displayName>
<parent>Trouble Ticket</parent>
<type>System.Enum</type>
<length>256</length>
<key>false</key>
<required>true</required>
<enumType>04b28bfb-8898-9af3-009b-979e58837852</enumType>
</ClassDetails>
<ClassDetails>
<name>ClosedDate</name>
<displayName>Closed date</displayName>
<parent>Trouble Ticket</parent>
<type>System.DateTime</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>ResolvedDate</name>
<displayName>Resolved date</displayName>
<parent>Trouble Ticket</parent>
<type>System.DateTime</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
</ArrayOfClassDetails>
<ArrayOfClassDetails>
<ClassDetails>
<name>TargetResolutionTime</name>
<displayName>Resolve by</displayName>
<parent>Incident</parent>
<type>System.DateTime</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>Escalated</name>
<displayName>Escalated</displayName>
<parent>Incident</parent>
<type>System.Boolean</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>Source</name>
<displayName>Source</displayName>
<parent>Incident</parent>
<type>System.Enum</type>
<length>256</length>
<key>false</key>
<required>false</required>
<enumType>5d59071e-69b3-7ef4-6dee-aacc5b36d898</enumType>
</ClassDetails>
<ClassDetails>
<name>Status</name>
<displayName>Status</displayName>
<parent>Incident</parent>
<type>System.Enum</type>
<length>256</length>
<key>false</key>
<required>false</required>
<enumType>89b34802-671e-e422-5e38-7dae9a413ef8</enumType>
</ClassDetails>
<ClassDetails>
<name>ResolutionDescription</name>
<displayName>Resolution description</displayName>
<parent>Incident</parent>
<type>System.String</type>
<length>4000</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>NeedsKnowledgeArticle</name>
<displayName>Needs knowledge article</displayName>
<parent>Incident</parent>
<type>System.Boolean</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>TierQueue</name>
<displayName>Support group</displayName>
<parent>Incident</parent>
<type>System.Enum</type>
<length>256</length>
<key>false</key>
<required>false</required>
<enumType>c3264527-a501-029f-6872-31300080b3bf</enumType>
</ClassDetails>
<ClassDetails>
<name>HasCreatedKnowledgeArticle</name>
<displayName>Has created knowledge article</displayName>
<parent>Incident</parent>
<type>System.Boolean</type>
<length>256</length>
<key>false</key>
<required>false</required>
</ClassDetails>
<ClassDetails>
<name>LastModifiedSource</name>
<displayName>Last modified source</displayName>
<parent>Incident</parent>
<type>System.Enum</type>
<length>256</length>
<key>false</key>
<required>false</required>
<enumType>5d59071e-69b3-7ef4-6dee-aacc5b36d898</enumType>
</ClassDetails>
<ClassDetails>
<name>Classification</name>
<displayName>Classification category</displayName>
<parent>Incident</parent>
<type>System.Enum</type>
<length>256</length>
<key>false</key>
<required>false</required>
<enumType>1f77f0ce-9e43-340f-1fd5-b11cc36c9cba</enumType>
</ClassDetails>
<ClassDetails>
<name>ResolutionCategory</name>
<displayName>Resolution category</displayName>
<parent>Incident</parent>
<type>System.Enum</type>
<length>256</length>
<key>false</key>
<required>false</required>
<enumType>72674491-02cb-1d90-a48f-1b269eb83602</enumType>
</ClassDetails>
</ArrayOfClassDetails>
</ArrayOfArrayOfClassDetails>
No comments:
Post a Comment