简体   繁体   English

无法反序列化多个对象的当前JSON对象

[英]Cannot deserialize the current JSON object for Multiple Objects

I have data that deserialises fine when I retrieve a single entry of data however, 当我检索单个数据条目时,我的数据反序列化很好,

Cannot deserialize the current JSON object (eg {"name":"value"}) into type 'System.Collections.Generic.List`1[Purchaseorderline]' because the type requires a JSON array (eg [1,2,3]) to deserialize correctly. 无法将当前JSON对象(例如{“ name”:“ value”})反序列化为类型'System.Collections.Generic.List`1 [Purchaseorderline]',因为该类型需要JSON数组(例如[1,2,3] )正确反序列化。

this is to retrieve Orders and OrderItems, I can do a single order (by requesting a single order number) however when I get all orders, it errors, I have performed the standard converting to Json objects to ensure my class is correct and cannot see what Im supposed to apply as an array to my class to simply put it into a List of type RootObject.. 这是为了检索Orders和OrderItems,我可以执行一个订单(通过请求一个订单号),但是当我收到所有订单时,它会出错,我已经执行了标准转换为Json对象的操作,以确保我的类正确并且看不到我本应作为数组应用于类的内容,以将其简单地放入RootObject类型的List中。

Here is my Code: 这是我的代码:

      {
                // ... 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);
             }

here is the class: 这是课程:

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; }


}

and here is the raw 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":""
            }
         ]
      }
   ]
}

It appears your JSON is not formatted properly. 看来您的JSON格式不正确。
The Data element should be an array rather than an object. Data元素应该是数组,而不是对象。

The following should do: 应该执行以下操作:

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

If the Data element should not be an array, in that case your JSON contains extra values and the following should be what you are looking for: 如果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": ""
                }
            ]
        }

}

The error you get is because you are trying to deserialize your JSON string into a list of Rootobjects instead of Rootobject itself. 您收到的错误是因为您试图将JSON字符串反序列化为Rootobjects列表而不是Rootobject本身。

Also generate your classes by copying the JSON string (the complete one) and pasting it via Edit > Paste Special > Paste JSON As Classes in Visual Studio. 还可以通过复制JSON字符串(完整的字符串)并在Visual Studio中通过“编辑”>“选择性粘贴”>“将JSON作为类粘贴”将其粘贴来生成类。

Here is the 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; }
}

But if your JSON string contains an array of Rootobjects, something like this: 但是,如果您的JSON字符串包含Rootobjects数组,则如下所示:

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

then you can deserialize it as follows: 那么您可以按以下方式反序列化它:

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

Slept on it... it was similar to what your answer was Mahdi thankyou, I needed to deserialise the Raw, then foreach through the deserialised object to add it to a list, 睡在上面...类似于您的回答是Mahdi Thankyou,我需要对Raw进行反序列化,然后遍历反序列化的对象以将其添加到列表中,

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM