How do I create a Dto in C# Asp.Net from a fairly

2019-01-01 07:25发布

问题:

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?

回答1:

Copy the JSON and then in Visual Studio, in the menu bar go to: Edit > Paste Special > Paste JSON as Classes:

\"enter

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.



标签: c# asp.net json