如何从相当复杂的Json Response中在C#Asp.Net中创建Dto

时间:2017-03-10 00:32:33

标签: c# asp.net json

我已调用Api并使用RestSharp接收此响应。我无法控制Json响应的结构。

{
  "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"
  }
}

我想在没有进行可怕的解析等的情况下,从Json中提取Dad作为Dto的列表。

例如,我会创建一个Dto类:

public class LeadDto {
  public string LeadId;
  public string Company;
}

这些潜在客户可以包含在列表或其他内容中。

我已经读了https://github.com/restsharp/RestSharp/wiki/Deserialization多年但没有到达任何地方。

有人能用实例指出我正确的方向吗?

1 个答案:

答案 0 :(得分:13)

复制JSON,然后在Visual Studio中,在菜单栏中转到:编辑>选择性粘贴>将JSON粘贴为类

enter image description here

它将为您的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; }
}

您也可以通过选择将XML粘贴为类选项来对XML执行相同的操作。