VB.net JSON Deserialize

У меня есть следующая строка JSON для десериализации:

[{"application_id":"1","application_package":"abc"},{"application_id":"2","application_package":"xyz"}]

Я использую метод DataContractJsonSerializer.

Он состоит из массива элементов, и я не смог найти пример использования VB.Net, который может десериализовать эту структуру. У меня есть следующий class приложения для хранения этой информации:

   _ Public Class ApplicationItem  Public Property application_id As String  Public Property application_package As String End Class 

Я бы рекомендовал вам использовать JavaScriptSerializer DataContractJsonSerializer . Причины:

  • JavaScriptSerializer быстрее по сравнению с DataContractJsonSerializer
  • DataContractJsonSerializer требует больше кода, чем JavaScriptSerializer для простой сериализации.

Вам не понадобятся атрибут DataContract и DataMember для использования вместе с JavaScriptSerializer

Используйте этот class данных

  _ Public Class ApplicationItem Public Property application_id() As String Get Return m_application_id End Get Set m_application_id = Value End Set End Property Private m_application_id As String Public Property application_package() As String Get Return m_application_package End Get Set m_application_package = Value End Set End Property Private m_application_package As String End Class 

И используйте это для десериализации jsonText :

 Dim jss As New JavaScriptSerializer() Dim dict = jss.Deserialize(Of List(Of ApplicationItem))(jsonText) 

Если вы все еще хотите использовать DataContractJsonSerializer , вы можете использовать этот код ниже для десериализации:

 Dim obj As New List(Of ApplicationItem)() Dim ms As New MemoryStream(Encoding.Unicode.GetBytes(json)) Dim serializer As New System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.[GetType]()) obj = DirectCast(serializer.ReadObject(ms), List(Of ApplicationItem)) ms.Close() ms.Dispose() 

Courtesy: Используемый конвертер кода Telerik

Вот самый простой способ десериализации JSON в объект (с использованием .NET 4):

Пример JSON:

 { "dogs":[], "chickens":[ { "name":"Macey", "eggs":7 }, { "name":"Alfred", "eggs":2 } ] } 

VB.NET:

 Try Dim j As Object = New JavaScriptSerializer().Deserialize(Of Object)(JSONString) Dim a = j("dogs") ' returns empty Object() array Dim b = j("chickens")(0) ' returns Dictionary(Of String, Object) Dim c = j("chickens")(0)("name") ' returns String "Macey" Dim d = j("chickens")(1)("eggs") ' returns Integer 2 Catch ex As Exception ' in case the structure of the object is not what we expected. End Try 

Это работает для меня:

 // Get the HttpWebRequest reaponse string Response = loResponseStream.ReadToEnd(); var jss = new JavaScriptSerializer(); var dict = jss.Deserialize>(Response); string carrier = (dict["Response"]["carrier"]); 
  • Десериализация JSON с использованием JSon.NET с динамическими данными
  • Сериализация - readObject writeObject переопределяет
  • Дезерминирование полиморфных типов с jacksonом
  • Разбор большого json-файла в .NET.
  • Дезаминирование гетерогенного массива JSON в ковариантный список с использованием JSON.NET
  • Newtonsoft JSON Deserialize
  • Удаление десериализации JSON в .NET-объект с использованием Newtonsoft (или LINQ to JSON, возможно?)
  • Отключить JSON в существующий объект (Java)
  • JSON для экземпляра classа TypeScript?
  • Библиотека Jackson JSON: как создать экземпляр classа, содержащего абстрактные поля
  • Interesting Posts

    Использование JAXB сгенерированного classа для элемента, для которого требуется целое число с шаблоном

    Как импортировать закладки Firefox / Chrome в закладки Google?

    Добавить эффект пульсации на мою кнопку с цветом фона кнопки?

    как реализовать основную функцию в polymerных приложениях

    Насколько постоянным является локальное хранилище на Android и iOS?

    Проблемы / проблемы совместимости с твердотельными накопителями (SSD) с Dell D820 / D830?

    Почему мой c! = ‘O’ || условие c! = ‘x’ всегда верно?

    Регулярное выражение Perl (с использованием переменной в качестве строки поиска с включенными символами оператора Perl)

    Предоставление знанию «скрытого» файла

    Масштабируйте ImageIcon автоматически до размера метки

    insertNewObjectForEntityForName:

    Открытое / бесплатное приложение для Windows 7 для создания образов ISO

    Вентилятор Lenovo T400 постоянно работает в Kubuntu 12.04

    Запрос встроенного массива MongoDB

    Существует ли многопользовательское приложение для удаленного рабочего стола для Mac OS X?

    Давайте будем гением компьютера.