Click here to Skip to main content
15,920,053 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I keep getting this error.

Cannot deserialize the current JSON object

VB
Public Class Header
    Public deviceEnrollmentTransactionID As String
    Public completedOn As String
    Public orders As List(Of OrdersDetails)
    Public statusCode As String
    Public errorCode As String
    Public errorMessage As String
    Public transactionId As String


End Class

Public Class OrdersDetails
    Public Property orderNumber As String
    Public Property orderPostStatus As String
    Public Property orderPostStatusMessage As String
    Public Property deliveries As List(Of DeliveriesDetails)

End Class

Public Class DeliveriesDetails
    Public Property deliveryNumber As String
    Public Property deliveryPostStatus As String
    Public Property devices As List(Of DevicesDetails)

End Class

Public Class DevicesDetails
    Public Property deviceId As String
    Public Property devicePostStatus As String
    Public Property devicePostStatusMessage As String

End Class


VB
Dim varses = JsonConvert.DeserializeObject(Of Header())(content)



content
"{
	"deviceEnrollmentTransactionID":"5b1354db-60de-4a77-8bb2-cec0357c0cd0_1529483946450",
	"completedOn":"2018-06-20T08:39:14Z",
	"orders":
		[{"orderNumber":"SO_1234",
		  "orderPostStatus":"abc",
		  "orderPostStatusMessage":"xxx."
		}],
	"statusCode":"ERROR"
}"


What I have tried:

Can anyone help me find out what the issue? I tried google and no luck.
Posted
Updated 26-Jun-18 19:30pm

I changed the code to below and solve the issue.

Dim varses As header = JsonConvert.DeserializeObject(Of header)(content)
 
Share this answer
 
Look like the below statement is expecting to convert the string into list/array of header but the string (content) is not in correct format.
VB
Dim varses = JsonConvert.DeserializeObject(Of Header())(content)


Try wrap the content string with []. see below for example.

VB
Dim content = "[{" _
    + """deviceEnrollmentTransactionID"" : ""5b1354db-60De-4a77-8bb2-cec0357c0cd0_1529483946450""," _
    + """completedOn"":""2018-06-20T0839:14Z""," _
    + """orders"":" _
    + "[{""orderNumber"":""SO_1234"", " _
    + """orderPostStatus"":""abc""," _
        + """orderPostStatusMessage"":""xxx.""" _
        + "}]," _
    + """statusCode"":""ERROR""" _
+ "}]"
        Dim varses = JsonConvert.DeserializeObject(Of Header())(content)


Convert a string with multiple header.
VB
Dim content = "[{" _
    + """deviceEnrollmentTransactionID"" : ""5b1354db-xxxx-4444-yyyy-cec0357c0cd0_1529483946450""," _
    + """completedOn"":""2018-07-20T0839:14Z""," _
    + """orders"":" _
    + "[{""orderNumber"":""SO_1234"", " _
    + """orderPostStatus"":""abc""," _
        + """orderPostStatusMessage"":""YYY.""" _
        + "}]," _
    + """statusCode"":""WHAT""" _
+ "},{" _
    + """deviceEnrollmentTransactionID"" : ""5b1354db-60De-4a77-8bb2-cec0357c0cd0_1529483946450""," _
    + """completedOn"":""2018-06-20T0839:14Z""," _
    + """orders"":" _
    + "[{""orderNumber"":""SO_1234"", " _
    + """orderPostStatus"":""abc""," _
        + """orderPostStatusMessage"":""xxx.""" _
        + "}]," _
    + """statusCode"":""ERROR""" _
+ "}]"
        Dim varses = JsonConvert.DeserializeObject(Of Header())(content)
 
Share this answer
 
v3

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900