2016-06-10 6 views
0

Das aktuelle JSON-Objekt (z. B. {"name": "Wert"}) kann in Typ 'Retail_Web.Helpers + Sale1 []' nicht deserialisiert werden, weil Der Typ benötigt ein JSON-Array (zB [1,2,3]), um korrekt zu deserialisieren.
Um diesen Fehler zu beheben, ändern Sie den JSON entweder in ein JSON-Array (zB [1,2,3]) oder ändern Sie den deserialisierten Typ so, dass es ein normaler .NET-Typ ist (zB kein primitiver Typ wie ganze Zahlen, keine Sammlung) Typ wie ein Array oder eine Liste), die aus einem JSON-Objekt deserialisiert werden können. JsonObjectAttribute kann auch zum Typ hinzugefügt werden, um die Deserialisierung von einem JSON-Objekt zu erzwingen.
Pfad 'Sale.saleID', Zeile 1, Position 73.
Ich versuche, ein JSON deserialisieren, aber Newtonsoft.Json wirft diesen Fehler

JSON:

{ 
    "Sale": { 
     "saleID": "54", 
     "timeStamp": "2016-06-10T13:03:16+00:00", 
     "discountPercent": "0" 
    } 
} 

Modell:

Public Class Helpers 
    Public Property Sale As Sales() 

    Public Class Sales 
     Public Property saleID As String 
     Public Property timeStamp As String 
     Public Property discountPercent As String 
     Public Property completed As String 
    End Class 
End Class 

Und dies ist der Code, der den Fehler verursacht:

Dim OrdersReceiptList2 As Helpers 

OrdersReceiptList2 = JsonConvert.DeserializeObject(Of Helpers)(File.ReadAllText("c:\test.json")) 
MsgBox(OrdersReceiptList2.Sale(0).saleID) 

Antwort

0

Sale ist kein Array. Versuchen Sie stattdessen:

Public Class Helpers 
    Public Property Sale As Sales 'removed() 

    Public Class Sales 
     Public Property saleID As String 
     Public Property timeStamp As String 
     Public Property discountPercent As String 
     Public Property completed As String 
    End Class 
End Class 

MsgBox(OrdersReceiptList2.Sale.saleID) 
+0

Ich denke, arbeitet !! versuche es jetzt ... – ZEQUET

Verwandte Themen