How do I create a Dto in C# Asp.Net from a fairly complex Json Response
I have called an Api and received this response using RestSharp. I have no control over the structure of the Json response.
{
"response": {
"result": {
"Leads": {
"row": [
{
"no": "1",
"FL": [
{
"val": "LEADID",
"content": "101"
},
{
"val": "Company",
"content": "Test 1"
}
]
},
{
"no": "2",
"FL": [
{
"val": "LEADID",
"content": "102"
},
{
"val": "Company",
"content": "Test 2"
}
]
}
]
}
},
"uri": "/crm/private/json/Leads/getRecords"
}
}
I would like to extract a List of Leads as Dto's from the Json ideally without doing the horrible parsing etc.
So for example I would create a Dto class:
public class LeadDto {
public string LeadId;
public string Company;
}
and these Leads could be contained in a list or something.
I have been reading https://github.com/restsharp/RestSharp/wiki/Deserialization for ages but not getting anywhere.
Can anyone point me in the right direction with examples?
Solution 1:
Copy the JSON and then in Visual Studio, in the menu bar go to: Edit > Paste Special > Paste JSON as Classes:
And it will produce the following for your JSON:
public class Rootobject {
public Response response { get; set; }
}
public class Response {
public Result result { get; set; }
public string uri { get; set; }
}
public class Result {
public Leads Leads { get; set; }
}
public class Leads {
public Row[] row { get; set; }
}
public class Row {
public string no { get; set; }
public FL[] FL { get; set; }
}
public class FL {
public string val { get; set; }
public string content { get; set; }
}
You can also do the same with XML by choosing the Paste XML as Classes option.