Aneets Ответов: 1

Как я могу десериализовать JSON с использованием релиза json.net 3.5 и 8 .Чистая Compact 3.5 с


Привет,
У нас тут интересный проект. Я пытаюсь написать приложение, чтобы ехать на сканер Motorola, которая работает .Чистый Компактный 3.5. У меня на работе с API-интерфейса REST и меня возникают проблемы при десериализации JSON в классы, которые я написал, используя Json.Net 3.5 Р8 (это последняя версия в формате JSON.Сеть, поддерживающая .Net Compact). Ниже приведены классы, которые я написал:

Public Class ResponseProperties
    Public Property Status() As String
        Get
            Return m_Status
        End Get
        Set(ByVal value As String)
            m_Status = value
        End Set
    End Property
    Private m_Status As String
    Public Property Nsid() As String
        Get
            Return m_Nsid
        End Get
        Set(ByVal value As String)
            m_Nsid = value
        End Set
    End Property
    Private m_Nsid As String
    Public Property Message() As String
        Get
            Return m_Message
        End Get
        Set(ByVal value As String)
            m_Message = value
        End Set
    End Property
    Private m_Message As String
    Public Property RecordType() As String
        Get
            Return m_RecordType
        End Get
        Set(ByVal value As String)
            m_RecordType = value
        End Set
    End Property
    Private m_RecordType As String
    Public Property BinNumber() As String
        Get
            Return m_BinNumber
        End Get
        Set(ByVal value As String)
            m_BinNumber = value
        End Set
    End Property
    Private m_BinNumber As String
    Public Property ExternalID() As Integer
        Get
            Return m_ExternalID
        End Get
        Set(ByVal value As Integer)
            m_ExternalID = value
        End Set
    End Property
    Private m_ExternalID As Integer
End Class

Public Class Response
    Public Property responce() As ResponseProperties()
        Get
            Return m_responce
        End Get
        Set(ByVal value As ResponseProperties())
            m_responce = value
        End Set
    End Property
    Private m_responce As ResponseProperties()
End Class


а вот код, который я использую для десериализации json:

Imports Newtonsoft.Json
Imports System.Net
Imports System.IO
Imports System.Text

Public Class Form1

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        Dim Json As String = txtjson.Text 
        Dim ResponcesRes = JsonConvert.DeserializeObject(Of Response)(Json)
        lblOutput.Text = "output" & vbNewLine & ResponcesRes.responce(1).BinNumber

    End Sub

End Class


Вот пример Json, который я получаю.

{"response":[{"status":"success","nsid":"22222","message":"message here","recordtype":"bin","type":"create","binnumber":"binname","externalid":1111},{"status":"success","nsid":"22222","message":"message here","recordtype":"bin","type":"create","binnumber":"binname","externalid":1111},{"status":"success","nsid":"22222","message":"message here","recordtype":"bin","type":"create","binnumber":"binname","externalid":1111},{"status":"success","nsid":"22222","message":"message here","recordtype":"bin","type":"create","binnumber":"binname","externalid":1111},{"status":"success","nsid":"22222","message":"message here","recordtype":"bin","type":"create","binnumber":"binname","externalid":1111},{"status":"success","nsid":"22222","message":"message here","recordtype":"bin","type":"create","binnumber":"binname","externalid":1111}]}

Код не ошибается, я просто не получаю никаких выходных данных. если я = Я наведу курсор мыши на ResponcesRes, он скажет мне, что он ничего не содержит.
Если вам нужна дополнительная информация, пожалуйста, спросите.

Что я уже пробовал:

Пытались изменить структуру классов, но это не помогло решить проблему.

1 Ответов

Рейтинг:
12

Richard Deeming

Цитата:
Public Property responce() As ResponseProperties()
{"response":[

В вашем примере JSON это свойство называется response, нет responce.

Попробуйте изменить имя свойства, чтобы оно соответствовало JSON.


Aneets

Большое Спасибо, Ричард. Я не могу поверить, что совершил эту ошибку.