2017-03-14 126 views
0

我有,当我取回然而数据的单个条目deserialises精细数据,无法反序列化当前的JSON对象多个对象

无法反序列化当前的JSON对象(例如{“名”:“值” }) 成型 'System.Collections.Generic.List`1 [Purchaseorderline]' 因为类型需要JSON阵列(例如[1,2,3]),以正确地反序列化 。

这是检索订单和的OrderItems,我可以做一个单一的命令(通过请求一个订单号),然而,当我得到的所有订单,它的错误, 我已经完成了标准转换成JSON对象,以确保我的课是正确的,什么也看不见林应适用作为数组上我的课就干脆把它变成类型RootObject的名单..

这里是我的代码:

 { 
       // ... Read the string. 
       var result1 = await content.ReadAsStringAsync(); 
       List<Rootobject> POOrders = new List<Rootobject>(); 
       Rootobject test = JsonConvert.DeserializeObject<Rootobject>(result1); 
       POOrders.Add(test); 
       POOrders = JsonConvert.DeserializeObject<List<Rootobject>>(result1); 
      } 

这里是类:

using Newtonsoft.Json; 
using System; 
using SFOrders; 

public class Rootobject:Purchaseorderline 
{ 
    [JsonProperty("PurchaseOrderID")] 
    public string PurchaseOrderID { get; set; } 
    [JsonProperty("PurchaseOrderGuid")] 
    public string PurchaseOrderGuid { get; set; } 
    [JsonProperty("User")] 
    public User User { get; set; } 
    public string PurchaseOrderReference { get; set; } 
    [JsonProperty("DateRaised")] 
    public DateTime DateRaised { get; set; } 
    [JsonProperty("Supplier")] 
    public Supplier Supplier { get; set; } 
    [JsonProperty("Warehouse")] 
    public Warehouse Warehouse { get; set; } 
    [JsonProperty("DateDue")] 
    public DateTime DateDue { get; set; } 
    [JsonProperty("PurchaseOrderStatus")] 
    public string PurchaseOrderStatus { get; set; } 
    [JsonProperty("DeliveryCost")] 
    public float DeliveryCost { get; set; } 
    [JsonProperty("Subtotal")] 
    public float Subtotal { get; set; } 
    [JsonProperty("TotalVat")] 
    public float TotalVat { get; set; } 
    [JsonProperty("Total")] 
    public float Total { get; set; } 
    [JsonProperty("Currency")] 
    public Currency Currency { get; set; } 
    [JsonProperty("DateSent")] 
    public DateTime DateSent { get; set; } 
    [JsonProperty("PurchaseOrderLines")] 
    public Purchaseorderline[] PurchaseOrderLines { get; set; } 
} 

public class User 
{ 
    [JsonProperty("UserID")] 
    public int UserID { get; set; } 
    [JsonProperty("UserName")] 
    public string UserName { get; set; } 
} 

public class Supplier 
{ 
    [JsonProperty("SupplierID")] 
    public int SupplierID { get; set; } 
    [JsonProperty("Name")] 
    public string Name { get; set; } 
} 

public class Warehouse 
{ 

    [JsonProperty("WarehouseName")] 
    public string WarehouseName { get; set; } 
    [JsonProperty("WarehouseGuid")] 
    public string WarehouseGuid { get; set; } 
    [JsonProperty("WarehouseID")] 
    public int WarehouseID { get; set; } 
} 

public class Currency 
{ 
    [JsonProperty("CurrencyID")] 
    public int CurrencyID { get; set; } 
    [JsonProperty("CurrencyCode")] 
    public string CurrencyCode { get; set; } 
    [JsonProperty("CurrencyName")] 
    public string CurrencyName { get; set; } 
} 

public class Purchaseorderline 
{ 
    [JsonProperty("PurchaseOrderLineID")] 
    public int PurchaseOrderLineID { get; set; } 
    [JsonProperty("ProductSKU")] 
    public string ProductSKU { get; set; } 
    [JsonProperty("QtyOrdered")] 
    public int QtyOrdered { get; set; } 
    [JsonProperty("QtyReceived")] 
    public int QtyReceived { get; set; } 
    [JsonProperty("PurchaseOrderDetailStatus")] 
    public string PurchaseOrderDetailsStatus { get; set; } 
    [JsonProperty("SinglePrice")] 
    public float SinglePrice { get; set; } 
    [JsonProperty("LineVat")] 
    public float LineVat { get; set; } 
    [JsonProperty("LineTotal")] 
    public float LineTotal { get; set; } 
    [JsonProperty("DeliveryStatusID")] 
    public int DeliveryStatusID { get; set; } 
    [JsonProperty("QtyWrittenOff")] 
    public float QtyWrittenOff { get; set; } 
    [JsonProperty("CartonQty")] 
    public int CartonQty { get; set; } 
    [JsonProperty("AddedByUserID")] 
    public int AddedByUserID { get; set; } 
    [JsonProperty("TotalUnitsOrdered")] 
    public int TotalUnitsOrdered { get; set; } 

    [JsonProperty("TotalUnitsReceived")] 
    public int TotalUnitsReceived { get; set; } 
    [JsonProperty("TotalUnitsWrittenOff")] 
    public int TotalUnitsWrittenOff { get; set; } 
    [JsonProperty("LineNotes")] 
    public string LineNotes { get; set; } 



    [JsonProperty("TotalItems")] 
    public int TotalItems { get; set; } 
    [JsonProperty("PagingInfo")] 
    public object PagingInfo { get; set; } 
    [JsonProperty("TotalPages")] 
    public int TotalPages { get; set; } 
    [JsonProperty("Data")] 
    public SFOrders.SFOrderData.Datum[] Data { get; set; } 


} 

,这里是原始数据:

{ 
    "TotalItems":2, 
    "PagingInfo":{ 
     "PageSize":100, 
     "Page":1 
    }, 
    "TotalPages":1, 
    "Data":[ 
     { 
     "PurchaseOrderID":21179, 
     "PurchaseOrderGuid":"89bb1056-4d26-42a2-bf9c-25962637b42e", 
     "User":{ 
      "UserID":10169, 
      "UserName":"Viv Williams" 
     }, 
     "PurchaseOrderReference":"1-test-1", 
     "DateRaised":"2017-03-03T00:00:00", 
     "Supplier":{ 
      "SupplierID":1307, 
      "Name":"99A Avery Warehouse" 
     }, 
     "Warehouse":{ 
      "WarehouseName":"Charlies Direct", 
      "WarehouseGuid":"00000000-0000-0000-0000-000000000000", 
      "WarehouseID":122 
     }, 
     "DateDue":"2017-03-04T00:00:00", 
     "PurchaseOrderStatus":"SentToSupplier", 
     "DeliveryCost":0.0000, 
     "Subtotal":0.0000, 
     "TotalVat":0.0000, 
     "Total":0.0000, 
     "Currency":{ 
      "CurrencyID":4, 
      "CurrencyCode":"GBP", 
      "CurrencyName":"British Pound" 
     }, 
     "DateSent":"2017-03-03T12:13:59.05", 
     "PurchaseOrderLines":[ 
      { 
       "PurchaseOrderLineID":184694, 
       "ProductSKU":"065233", 
       "QtyOrdered":3, 
       "QtyReceived":0, 
       "PurchaseOrderDetailsStatus":"AwaitingProduct", 
       "SinglePrice":0.0000, 
       "LineVat":0.0000, 
       "LineTotal":0.0000, 
       "DeliveryStatusID":1, 
       "QtyWrittenOff":0.0, 
       "CartonQty":1, 
       "AddedByUserID":10169, 
       "TotalUnitsOrdered":3, 
       "TotalUnitsReceived":0, 
       "TotalUnitsWrittenOff":0, 
       "LineNotes":"" 
      }, 
      { 
       "PurchaseOrderLineID":184695, 
       "ProductSKU":"039586", 
       "QtyOrdered":10, 
       "QtyReceived":0, 
       "PurchaseOrderDetailsStatus":"AwaitingProduct", 
       "SinglePrice":0.0000, 
       "LineVat":0.0000, 
       "LineTotal":0.0000, 
       "DeliveryStatusID":1, 
       "QtyWrittenOff":0.0, 
       "CartonQty":1, 
       "AddedByUserID":10169, 
       "TotalUnitsOrdered":10, 
       "TotalUnitsReceived":0, 
       "TotalUnitsWrittenOff":0, 
       "LineNotes":"" 
      }, 
      { 
       "PurchaseOrderLineID":184696, 
       "ProductSKU":"009493", 
       "QtyOrdered":2, 
       "QtyReceived":0, 
       "PurchaseOrderDetailsStatus":"AwaitingProduct", 
       "SinglePrice":0.0000, 
       "LineVat":0.0000, 
       "LineTotal":0.0000, 
       "DeliveryStatusID":1, 
       "QtyWrittenOff":0.0, 
       "CartonQty":1, 
       "AddedByUserID":10169, 
       "TotalUnitsOrdered":2, 
       "TotalUnitsReceived":0, 
       "TotalUnitsWrittenOff":0, 
       "LineNotes":"" 
      }, 
      { 
       "PurchaseOrderLineID":184697, 
       "ProductSKU":"002836", 
       "QtyOrdered":5, 
       "QtyReceived":0, 
       "PurchaseOrderDetailsStatus":"AwaitingProduct", 
       "SinglePrice":0.0000, 
       "LineVat":0.0000, 
       "LineTotal":0.0000, 
       "DeliveryStatusID":1, 
       "QtyWrittenOff":0.0, 
       "CartonQty":1, 
       "AddedByUserID":10169, 
       "TotalUnitsOrdered":5, 
       "TotalUnitsReceived":0, 
       "TotalUnitsWrittenOff":0, 
       "LineNotes":"" 
      } 
     ] 
     }, 
     { 
     "PurchaseOrderID":21180, 
     "PurchaseOrderGuid":"854c1c5a-f63b-490e-99dc-119ed298988a", 
     "User":{ 
      "UserID":10169, 
      "UserName":"Viv Williams" 
     }, 
     "PurchaseOrderReference":"2 add Tues", 
     "DateRaised":"2017-03-03T00:00:00", 
     "Supplier":{ 
      "SupplierID":1298, 
      "Name":"99D Dyffryn Warehouse" 
     }, 
     "Warehouse":{ 
      "WarehouseName":"Charlies Direct", 
      "WarehouseGuid":"00000000-0000-0000-0000-000000000000", 
      "WarehouseID":122 
     }, 
     "DateDue":"2017-03-04T00:00:00", 
     "PurchaseOrderStatus":"SentToSupplier", 
     "DeliveryCost":0.0000, 
     "Subtotal":0.0000, 
     "TotalVat":0.0000, 
     "Total":0.0000, 
     "Currency":{ 
      "CurrencyID":4, 
      "CurrencyCode":"GBP", 
      "CurrencyName":"British Pound" 
     }, 
     "DateSent":"2017-03-03T12:13:48.19", 
     "PurchaseOrderLines":[ 
      { 
       "PurchaseOrderLineID":184698, 
       "ProductSKU":"003010", 
       "QtyOrdered":5, 
       "QtyReceived":0, 
       "PurchaseOrderDetailsStatus":"AwaitingProduct", 
       "SinglePrice":0.0000, 
       "LineVat":0.0000, 
       "LineTotal":0.0000, 
       "DeliveryStatusID":1, 
       "QtyWrittenOff":0.0, 
       "CartonQty":1, 
       "AddedByUserID":10169, 
       "TotalUnitsOrdered":5, 
       "TotalUnitsReceived":0, 
       "TotalUnitsWrittenOff":0, 
       "LineNotes":"" 
      }, 
      { 
       "PurchaseOrderLineID":184699, 
       "ProductSKU":"094508", 
       "QtyOrdered":12, 
       "QtyReceived":0, 
       "PurchaseOrderDetailsStatus":"AwaitingProduct", 
       "SinglePrice":0.0000, 
       "LineVat":0.0000, 
       "LineTotal":0.0000, 
       "DeliveryStatusID":1, 
       "QtyWrittenOff":0.0, 
       "CartonQty":1, 
       "AddedByUserID":10169, 
       "TotalUnitsOrdered":12, 
       "TotalUnitsReceived":0, 
       "TotalUnitsWrittenOff":0, 
       "LineNotes":"" 
      }, 
      { 
       "PurchaseOrderLineID":184700, 
       "ProductSKU":"003820", 
       "QtyOrdered":20, 
       "QtyReceived":0, 
       "PurchaseOrderDetailsStatus":"AwaitingProduct", 
       "SinglePrice":0.0000, 
       "LineVat":0.0000, 
       "LineTotal":0.0000, 
       "DeliveryStatusID":1, 
       "QtyWrittenOff":0.0, 
       "CartonQty":1, 
       "AddedByUserID":10169, 
       "TotalUnitsOrdered":20, 
       "TotalUnitsReceived":0, 
       "TotalUnitsWrittenOff":0, 
       "LineNotes":"" 
      }, 
      { 
       "PurchaseOrderLineID":184701, 
       "ProductSKU":"003823", 
       "QtyOrdered":4, 
       "QtyReceived":0, 
       "PurchaseOrderDetailsStatus":"AwaitingProduct", 
       "SinglePrice":0.0000, 
       "LineVat":0.0000, 
       "LineTotal":0.0000, 
       "DeliveryStatusID":1, 
       "QtyWrittenOff":0.0, 
       "CartonQty":1, 
       "AddedByUserID":10169, 
       "TotalUnitsOrdered":4, 
       "TotalUnitsReceived":0, 
       "TotalUnitsWrittenOff":0, 
       "LineNotes":"" 
      } 
     ] 
     } 
    ] 
} 

回答

0

看来你的JSON格式不正确。
Data元件应该是一个阵列,而不是一个对象。

下应该做的:

{ 
    "TotalItems":2, 
    "PagingInfo":{ 
     "PageSize":100, 
     "Page":1 
    }, 
    "TotalPages":1, 
    "Data": [ 
     { 
      "PurchaseOrderID": 21179, 
      "PurchaseOrderGuid": "89bb1056-4d26-42a2-bf9c-25962637b42e", 
      "User": { 
       "UserID": 10169, 
       "UserName": "Viv Williams" 
      }, 
      "PurchaseOrderReference": "1-test-1", 
      "DateRaised": "2017-03-03T00:00:00", 
      "Supplier": { 
       "SupplierID": 1307, 
       "Name": "99A Avery Warehouse" 
      }, 
      "Warehouse": { 
       "WarehouseName": "Charlies Direct", 
       "WarehouseGuid": "00000000-0000-0000-0000-000000000000", 
       "WarehouseID": 122 
      }, 
      "DateDue": "2017-03-04T00:00:00", 
      "PurchaseOrderStatus": "SentToSupplier", 
      "DeliveryCost": 0.0000, 
      "Subtotal": 0.0000, 
      "TotalVat": 0.0000, 
      "Total": 0.0000, 
      "Currency": { 
       "CurrencyID": 4, 
       "CurrencyCode": "GBP", 
       "CurrencyName": "British Pound" 
      }, 
      "DateSent": "2017-03-03T12:13:59.05", 
      "PurchaseOrderLines": [ 
       { 
        "PurchaseOrderLineID": 184694, 
        "ProductSKU": "065233", 
        "QtyOrdered": 3, 
        "QtyReceived": 0, 
        "PurchaseOrderDetailsStatus": "AwaitingProduct", 
        "SinglePrice": 0.0000, 
        "LineVat": 0.0000, 
        "LineTotal": 0.0000, 
        "DeliveryStatusID": 1, 
        "QtyWrittenOff": 0.0, 
        "CartonQty": 1, 
        "AddedByUserID": 10169, 
        "TotalUnitsOrdered": 3, 
        "TotalUnitsReceived": 0, 
        "TotalUnitsWrittenOff": 0, 
        "LineNotes": "" 
       }, 
       { 
        "PurchaseOrderLineID": 184695, 
        "ProductSKU": "039586", 
        "QtyOrdered": 10, 
        "QtyReceived": 0, 
        "PurchaseOrderDetailsStatus": "AwaitingProduct", 
        "SinglePrice": 0.0000, 
        "LineVat": 0.0000, 
        "LineTotal": 0.0000, 
        "DeliveryStatusID": 1, 
        "QtyWrittenOff": 0.0, 
        "CartonQty": 1, 
        "AddedByUserID": 10169, 
        "TotalUnitsOrdered": 10, 
        "TotalUnitsReceived": 0, 
        "TotalUnitsWrittenOff": 0, 
        "LineNotes": "" 
       }, 
       { 
        "PurchaseOrderLineID": 184696, 
        "ProductSKU": "009493", 
        "QtyOrdered": 2, 
        "QtyReceived": 0, 
        "PurchaseOrderDetailsStatus": "AwaitingProduct", 
        "SinglePrice": 0.0000, 
        "LineVat": 0.0000, 
        "LineTotal": 0.0000, 
        "DeliveryStatusID": 1, 
        "QtyWrittenOff": 0.0, 
        "CartonQty": 1, 
        "AddedByUserID": 10169, 
        "TotalUnitsOrdered": 2, 
        "TotalUnitsReceived": 0, 
        "TotalUnitsWrittenOff": 0, 
        "LineNotes": "" 
       }, 
       { 
        "PurchaseOrderLineID": 184697, 
        "ProductSKU": "002836", 
        "QtyOrdered": 5, 
        "QtyReceived": 0, 
        "PurchaseOrderDetailsStatus": "AwaitingProduct", 
        "SinglePrice": 0.0000, 
        "LineVat": 0.0000, 
        "LineTotal": 0.0000, 
        "DeliveryStatusID": 1, 
        "QtyWrittenOff": 0.0, 
        "CartonQty": 1, 
        "AddedByUserID": 10169, 
        "TotalUnitsOrdered": 5, 
        "TotalUnitsReceived": 0, 
        "TotalUnitsWrittenOff": 0, 
        "LineNotes": "" 
       } 
      ] 
     }, 
     { 
      "PurchaseOrderID": 21180, 
      "PurchaseOrderGuid": "854c1c5a-f63b-490e-99dc-119ed298988a", 
      "User": { 
       "UserID": 10169, 
       "UserName": "Viv Williams" 
      }, 
      "PurchaseOrderReference": "2 add Tues", 
      "DateRaised": "2017-03-03T00:00:00", 
      "Supplier": { 
       "SupplierID": 1298, 
       "Name": "99D Dyffryn Warehouse" 
      }, 
      "Warehouse": { 
       "WarehouseName": "Charlies Direct", 
       "WarehouseGuid": "00000000-0000-0000-0000-000000000000", 
       "WarehouseID": 122 
      }, 
      "DateDue": "2017-03-04T00:00:00", 
      "PurchaseOrderStatus": "SentToSupplier", 
      "DeliveryCost": 0.0000, 
      "Subtotal": 0.0000, 
      "TotalVat": 0.0000, 
      "Total": 0.0000, 
      "Currency": { 
       "CurrencyID": 4, 
       "CurrencyCode": "GBP", 
       "CurrencyName": "British Pound" 
      }, 
      "DateSent": "2017-03-03T12:13:48.19", 
      "PurchaseOrderLines": [ 
       { 
        "PurchaseOrderLineID": 184698, 
        "ProductSKU": "003010", 
        "QtyOrdered": 5, 
        "QtyReceived": 0, 
        "PurchaseOrderDetailsStatus": "AwaitingProduct", 
        "SinglePrice": 0.0000, 
        "LineVat": 0.0000, 
        "LineTotal": 0.0000, 
        "DeliveryStatusID": 1, 
        "QtyWrittenOff": 0.0, 
        "CartonQty": 1, 
        "AddedByUserID": 10169, 
        "TotalUnitsOrdered": 5, 
        "TotalUnitsReceived": 0, 
        "TotalUnitsWrittenOff": 0, 
        "LineNotes": "" 
       }, 
       { 
        "PurchaseOrderLineID": 184699, 
        "ProductSKU": "094508", 
        "QtyOrdered": 12, 
        "QtyReceived": 0, 
        "PurchaseOrderDetailsStatus": "AwaitingProduct", 
        "SinglePrice": 0.0000, 
        "LineVat": 0.0000, 
        "LineTotal": 0.0000, 
        "DeliveryStatusID": 1, 
        "QtyWrittenOff": 0.0, 
        "CartonQty": 1, 
        "AddedByUserID": 10169, 
        "TotalUnitsOrdered": 12, 
        "TotalUnitsReceived": 0, 
        "TotalUnitsWrittenOff": 0, 
        "LineNotes": "" 
       }, 
       { 
        "PurchaseOrderLineID": 184700, 
        "ProductSKU": "003820", 
        "QtyOrdered": 20, 
        "QtyReceived": 0, 
        "PurchaseOrderDetailsStatus": "AwaitingProduct", 
        "SinglePrice": 0.0000, 
        "LineVat": 0.0000, 
        "LineTotal": 0.0000, 
        "DeliveryStatusID": 1, 
        "QtyWrittenOff": 0.0, 
        "CartonQty": 1, 
        "AddedByUserID": 10169, 
        "TotalUnitsOrdered": 20, 
        "TotalUnitsReceived": 0, 
        "TotalUnitsWrittenOff": 0, 
        "LineNotes": "" 
       }, 
       { 
        "PurchaseOrderLineID": 184701, 
        "ProductSKU": "003823", 
        "QtyOrdered": 4, 
        "QtyReceived": 0, 
        "PurchaseOrderDetailsStatus": "AwaitingProduct", 
        "SinglePrice": 0.0000, 
        "LineVat": 0.0000, 
        "LineTotal": 0.0000, 
        "DeliveryStatusID": 1, 
        "QtyWrittenOff": 0.0, 
        "CartonQty": 1, 
        "AddedByUserID": 10169, 
        "TotalUnitsOrdered": 4, 
        "TotalUnitsReceived": 0, 
        "TotalUnitsWrittenOff": 0, 
        "LineNotes": "" 
       } 
      ] 
     } 
    ] 
} 

如果Data元素不应该是一个数组,在这种情况下,你的JSON包含附加价值及以下应你正在寻找:

{ 
    "TotalItems":2, 
    "PagingInfo":{ 
     "PageSize":100, 
     "Page":1 
    }, 
    "TotalPages":1, 
    "Data": 
     { 
      "PurchaseOrderID": 21179, 
      "PurchaseOrderGuid": "89bb1056-4d26-42a2-bf9c-25962637b42e", 
      "User": { 
       "UserID": 10169, 
       "UserName": "Viv Williams" 
      }, 
      "PurchaseOrderReference": "1-test-1", 
      "DateRaised": "2017-03-03T00:00:00", 
      "Supplier": { 
       "SupplierID": 1307, 
       "Name": "99A Avery Warehouse" 
      }, 
      "Warehouse": { 
       "WarehouseName": "Charlies Direct", 
       "WarehouseGuid": "00000000-0000-0000-0000-000000000000", 
       "WarehouseID": 122 
      }, 
      "DateDue": "2017-03-04T00:00:00", 
      "PurchaseOrderStatus": "SentToSupplier", 
      "DeliveryCost": 0.0000, 
      "Subtotal": 0.0000, 
      "TotalVat": 0.0000, 
      "Total": 0.0000, 
      "Currency": { 
       "CurrencyID": 4, 
       "CurrencyCode": "GBP", 
       "CurrencyName": "British Pound" 
      }, 
      "DateSent": "2017-03-03T12:13:59.05", 
      "PurchaseOrderLines": [ 
       { 
        "PurchaseOrderLineID": 184694, 
        "ProductSKU": "065233", 
        "QtyOrdered": 3, 
        "QtyReceived": 0, 
        "PurchaseOrderDetailsStatus": "AwaitingProduct", 
        "SinglePrice": 0.0000, 
        "LineVat": 0.0000, 
        "LineTotal": 0.0000, 
        "DeliveryStatusID": 1, 
        "QtyWrittenOff": 0.0, 
        "CartonQty": 1, 
        "AddedByUserID": 10169, 
        "TotalUnitsOrdered": 3, 
        "TotalUnitsReceived": 0, 
        "TotalUnitsWrittenOff": 0, 
        "LineNotes": "" 
       }, 
       { 
        "PurchaseOrderLineID": 184695, 
        "ProductSKU": "039586", 
        "QtyOrdered": 10, 
        "QtyReceived": 0, 
        "PurchaseOrderDetailsStatus": "AwaitingProduct", 
        "SinglePrice": 0.0000, 
        "LineVat": 0.0000, 
        "LineTotal": 0.0000, 
        "DeliveryStatusID": 1, 
        "QtyWrittenOff": 0.0, 
        "CartonQty": 1, 
        "AddedByUserID": 10169, 
        "TotalUnitsOrdered": 10, 
        "TotalUnitsReceived": 0, 
        "TotalUnitsWrittenOff": 0, 
        "LineNotes": "" 
       }, 
       { 
        "PurchaseOrderLineID": 184696, 
        "ProductSKU": "009493", 
        "QtyOrdered": 2, 
        "QtyReceived": 0, 
        "PurchaseOrderDetailsStatus": "AwaitingProduct", 
        "SinglePrice": 0.0000, 
        "LineVat": 0.0000, 
        "LineTotal": 0.0000, 
        "DeliveryStatusID": 1, 
        "QtyWrittenOff": 0.0, 
        "CartonQty": 1, 
        "AddedByUserID": 10169, 
        "TotalUnitsOrdered": 2, 
        "TotalUnitsReceived": 0, 
        "TotalUnitsWrittenOff": 0, 
        "LineNotes": "" 
       }, 
       { 
        "PurchaseOrderLineID": 184697, 
        "ProductSKU": "002836", 
        "QtyOrdered": 5, 
        "QtyReceived": 0, 
        "PurchaseOrderDetailsStatus": "AwaitingProduct", 
        "SinglePrice": 0.0000, 
        "LineVat": 0.0000, 
        "LineTotal": 0.0000, 
        "DeliveryStatusID": 1, 
        "QtyWrittenOff": 0.0, 
        "CartonQty": 1, 
        "AddedByUserID": 10169, 
        "TotalUnitsOrdered": 5, 
        "TotalUnitsReceived": 0, 
        "TotalUnitsWrittenOff": 0, 
        "LineNotes": "" 
       } 
      ] 
     } 

} 
+0

我不能作为其从供应商API调用改变JSON的需要..?我改变了我的类只是一个对象数组[JsonProperty(“Data”)] public object [] Data {get;组; }但没有快乐我害怕, –

0

你得到的错误是因为你试图将你的JSON字符串反序列化为一个RootObject而不是Rootobject本身。

而且通过复制JSON字符串(完整的),并通过编辑粘贴>粘贴>粘贴JSON作为在Visual Studio类生成的类。

这里是Rootobject:

public class Rootobject 
{ 
    public int TotalItems { get; set; } 
    public Paginginfo PagingInfo { get; set; } 
    public int TotalPages { get; set; } 
    public Datum[] Data { get; set; } 
} 

public class Paginginfo 
{ 
    public int PageSize { get; set; } 
    public int Page { get; set; } 
} 

public class Datum 
{ 
    public int PurchaseOrderID { get; set; } 
    public string PurchaseOrderGuid { get; set; } 
    public User User { get; set; } 
    public string PurchaseOrderReference { get; set; } 
    public DateTime DateRaised { get; set; } 
    public Supplier Supplier { get; set; } 
    public Warehouse Warehouse { get; set; } 
    public DateTime DateDue { get; set; } 
    public string PurchaseOrderStatus { get; set; } 
    public float DeliveryCost { get; set; } 
    public float Subtotal { get; set; } 
    public float TotalVat { get; set; } 
    public float Total { get; set; } 
    public Currency Currency { get; set; } 
    public DateTime DateSent { get; set; } 
    public Purchaseorderline[] PurchaseOrderLines { get; set; } 
} 

public class User 
{ 
    public int UserID { get; set; } 
    public string UserName { get; set; } 
} 

public class Supplier 
{ 
    public int SupplierID { get; set; } 
    public string Name { get; set; } 
} 

public class Warehouse 
{ 
    public string WarehouseName { get; set; } 
    public string WarehouseGuid { get; set; } 
    public int WarehouseID { get; set; } 
} 

public class Currency 
{ 
    public int CurrencyID { get; set; } 
    public string CurrencyCode { get; set; } 
    public string CurrencyName { get; set; } 
} 

public class Purchaseorderline 
{ 
    public int PurchaseOrderLineID { get; set; } 
    public string ProductSKU { get; set; } 
    public int QtyOrdered { get; set; } 
    public int QtyReceived { get; set; } 
    public string PurchaseOrderDetailsStatus { get; set; } 
    public float SinglePrice { get; set; } 
    public float LineVat { get; set; } 
    public float LineTotal { get; set; } 
    public int DeliveryStatusID { get; set; } 
    public float QtyWrittenOff { get; set; } 
    public int CartonQty { get; set; } 
    public int AddedByUserID { get; set; } 
    public int TotalUnitsOrdered { get; set; } 
    public int TotalUnitsReceived { get; set; } 
    public int TotalUnitsWrittenOff { get; set; } 
    public string LineNotes { get; set; } 
} 

但是,如果你的JSON字符串包含Rootobjects数组,这样的:

[{RawData1},{RawData2},{RawData3}] 

,那么你可以按如下反序列化:

var test = JsonConvert.DeserializeObject<List<Rootobject>>(json); 
+0

我收集,因为我可以包含一个单一的RootObject的列表,Im努力让它做的工作,当有多个相同的对象在Json ..这就是错误的地方,我已经在一个示例API(Telerik soap测试API模拟器)上完成了,并且工作正常..但是我真的很难将Json中的数据放到列表中...? –

+0

我刚刚用数组测试了我的代码。它工作正常。你是如何创建你的课程的? – Mahdi

+0

我刚刚复制了原始数据到剪贴板,创建了一个类,粘贴特殊并粘贴Json作为类...然后把JsonProperty放在每一个... –

0

睡在它...它是类似于你的答案是马赫迪三江源, 我到deserialise的原料,然后通过deserialised对象的foreach将其添加到列表,

Rootobject test = JsonConvert.DeserializeObject<Rootobject>(result1); 
       foreach(Rootobject items in test.Data) 
       { 
        POOrders.Add(items); 
       } 
相关问题