我遇到了一些难以通过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);