使用RESTSHARP发出挑选数据



我遇到了一些难以通过RESTSHARP从Web服务返回的挑选数据。以下是从邮政请求返回的数据。

{
"responseCPUTime": "0",
"response": "PASS",
"responseFor": "getSalesOrders",
"responseData": {
"salesOrders": [
  {
            "loadStatus": "",
            "comments": "",
            "modifyDate": "20180130",
            "custShipToID": "",
            "invoiceCount": "0",
            "custBillToID": "WINDJ",
            "invoiceAmount": "12280.00",
            "pickDate": "20180204",
            "warehouse": "~D",
            "custName": "WINN DIXIE JACKSONVILLE",
            "modifyTime": "102614",
            "loadID": "",
            "createTime": "075610",
            "createdBy": "RGN",
            "custPONum2": "",
            "modifiedBy": "KAL",
            "SONum": "00855494",
            "deliveryDate": "20180205",
            "tripNumber": "",
            "custPONum": "66523",
            "status": "O",
            "createDate": "20180125"
            },
              {
            "loadStatus": "",
            "comments": "",
            ......
            }
            ],
    },
"responseMessage": ""
}

这是我试图将数据划分为。

的模型。

模型:

public class SalesOrder
{
    public string loadStatus { get; set; }
    public string comments { get; set; }
    public string modifyDate { get; set; }
    public string custShipToID { get; set; }
    public string invoiceCount { get; set; }
    public string custBillToID { get; set; }
    public string invoiceAmount { get; set; }
    public string pickDate { get; set; }
    public string warehouse { get; set; }
    public string custName { get; set; }
    public string modifyTime { get; set; }
    public string loadID { get; set; }
    public string createTime { get; set; }
    public string createdBy { get; set; }
    public string custPONum2 { get; set; }
    public string modifiedBy { get; set; }
    public string SONum { get; set; }
    public string deliveryDate { get; set; }
    public string tripNumber { get; set; }
    public string custPONum { get; set; }
    public string status { get; set; }
    public string createDate { get; set; }
}
public class ResponseData
{
    public List<SalesOrder> salesOrders { get; set; }
}
public class RootObject
{
    public string responseCPUTime { get; set; }
    public string response { get; set; }
    public string responseFor { get; set; }
    public ResponseData responseData { get; set; }
    public string responseMessage { get; set; }
}

这是成功获取数据但似乎无法加载到salesordormodel列表的类。

类:

 public List<SalesOrderModel> GetSalesOrders(string company, string custBillToID, string startShipDate, string endShipDate)
    {
        var client = new RestClient("https://xxxxxxx.xxxxxx.com");
        var request = new RestRequest("xxx/services", Method.POST);
        request.AddHeader("header", @"accept: application/json
                                        accept-encoding: gzip, deflate
                                        accept-language: en-US, en; q=0.8
                                        content-type: application/json
                                        user-agent: Mozilla/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36");
        request.AddParameter("appId", "xxxxxx");
        request.AddParameter("command", "getSalesOrders");
        request.AddParameter("company", "0007");
        request.AddParameter("startDeliveryDate", "20180205");
        request.AddParameter("endDeliveryDate", "20180205");
        request.AddParameter("status", "O");

        IRestResponse <List<SalesOrderModel>> response = client.Execute<List<SalesOrderModel>>(request);
        return response.Data;
    }

任何人都可以将我指向如何正确映射返回的数据中的数据吗?

谢谢

编辑:我更新了模型以包括各种"包装器"。

现在我的问题是,在视图中访问此数据的最佳方法是什么?

编辑:查看:

@model DirectOrderTracker.Models.RootObject

@foreach (var item in @Model.responseData.salesOrders)
{
    @item.custBillToID
}

您的JSON和被判决的模型是不可能的。您正在尝试将非收集JSON作为List之类的集合。因此,修改您的模型;

public class SalesOrder
{
    public string loadStatus { get; set; }
    public string comments { get; set; }
    public string modifyDate { get; set; }
    public string custShipToID { get; set; }
    public string invoiceCount { get; set; }
    public string custBillToID { get; set; }
    public string invoiceAmount { get; set; }
    public string pickDate { get; set; }
    public string warehouse { get; set; }
    public string custName { get; set; }
    public string modifyTime { get; set; }
    public string loadID { get; set; }
    public string createTime { get; set; }
    public string createdBy { get; set; }
    public string custPONum2 { get; set; }
    public string modifiedBy { get; set; }
    public string SONum { get; set; }
    public string deliveryDate { get; set; }
    public string tripNumber { get; set; }
    public string custPONum { get; set; }
    public string status { get; set; }
    public string createDate { get; set; }
}
public class ResponseData
{
    public List<SalesOrder> salesOrders { get; set; }
}
public class JsonObject
{
    public string responseCPUTime { get; set; }
    public string response { get; set; }
    public string responseFor { get; set; }
    public ResponseData responseData { get; set; }
    public string responseMessage { get; set; }
}

并像 JsonObject;

一样对其进行审理
IRestResponse<JsonObject> response = client.Execute<JsonObject>(request);

最新更新