Отключить использование JSON.net

Я очень новичок в json, JSON.net и все такое. Прочитав похожие вопросы, я не могу заставить мой код работать. Что такое моя ошибка? Что я наблюдал? Можно ли пропускать classы «ссылки» и «мета» для целей тестирования или мне нужно определить КАЖДОЕ свойство?

У меня есть следующий выход REST:

{ "codes" : [ { "href" : "https://www.someserver.com/form_definitions/OIlG4GxMyeh0sdrt3AYuaXbauGicW71M/field_definitions/zFEova6LiPM/codes/4Sxnr961xzM", "rel" : "document_field_definition_code", "title" : "TITLE 1" }, { "href" : "https://www.someserver.com/form_definitions/OIlG4GxMyeh0sdrt3AYuaXbauGicW71M/field_definitions/zFEova6LiPM/codes/buho0CsLc5k", "rel" : "document_field_definition_code", "title" : "TITLE 2" }, { "href" : "https://www.someserver.com/form_definitions/OIlG4GxMyeh0sdrt3AYuaXbauGicW71M/field_definitions/zFEova6LiPM/codes/RvQoykUM_Sk", "rel" : "document_field_definition_code", "title" : "TITLE 3" } ], "links" : [ { "about" : "https://www.someserver.com/form_definitions/OIlG4GxMyeh0sdrt3AYuaXbauGicW71M/field_definitions/zFEova6LiPM/codes?about=1", "href" : "https://www.someserver.com/form_definitions/OIlG4GxMyeh0sdrt3AYuaXbauGicW71M/field_definitions/zFEova6LiPM/codes", "method" : "GET", "rel" : "self", "title" : null, "type" : "codes" }, { "href" : "https://www.someserver.com/form_definitions/OIlG4GxMyeh0sdrt3AYuaXbauGicW71M/field_definitions/zFEova6LiPM/codes", "method" : "POST", "rel" : "codes", "title" : "create new codes entity" } ], "meta" : { "description" : null, "last_page" : 1, "page_offset" : 0, "page_size" : 50, "query-template" : "/codes{?query_search,page_offset,page_size,query_identification,embedded,properties,about}", "total" : 6 } } 

Поскольку я не получил доступ, мне нужны три classа: например, коды, ссылки и мета.

Я создал class «clscodes»:

 Public Class clsCode Private m_href As String Private m_rel As String Private m_title As String Public Property Href As String Get Return m_href End Get Set(value As String) m_href = value End Set End Property Public Property Rel As String Get Return m_rel End Get Set(value As String) m_rel = value End Set End Property Public Property Title As String Get Return m_title End Get Set(value As String) m_title = value End Set End Property End Class 

И я создал class clsValuelist:

 Public Class clsWerteliste Private m_code As IList(Of clsCode) Public Property Code() As clsCode() Get Return m_code End Get Set(value As clsCode()) m_code = value End Set End Property End Class 

Когда я пытаюсь десериализовать это, я получаю «ничего», как в «CoolOutput»,

 Dim CoolOutput As New clsWerteliste CoolOutput = JsonConvert.DeserializeObject(Of clsWerteliste)(jsonstring) 

Ваши classы довольно близки, похоже, что вы, возможно, пытались немного переделать такие вещи, как смена codes на Codes но при этом свойства больше не совпадают. Вы можете изменить имена classов, но не имена свойств (по крайней мере, не так):

 Public Class CodeLinkContainer  Public Property Codes As IList(Of Code)  Public Property Links As IList(Of Link)  Public Property Meta As Meta End Class Public Class Meta Public Property description As Object Public Property last_page As Integer Public Property page_offset As Integer Public Property page_size As Integer Public Property querytemplate As String Public Property total As Integer End Class Public Class Code Public Property href As String Public Property rel As String Public Property title As String End Class Public Class Link Public Property about As String Public Property href As String Public Property method As String Public Property rel As String Public Property title As String Public Property type As String End Class 

Использование свойств AutoImplement, доступных в течение некоторого времени, означает, что вы можете пропустить весь код Get , Set patplate. VS также создаст для вас classы:
Меню «Правка» -> « Вставить» -> « Вставить» Json As Classes

Иногда вам нужно настроить class, если есть свойство array / list. Например, роботы могут писать:

 Public Property elements() As Element 

Когда это должно быть:

 Public Property elements As Element() 

Класс контейнера показывает, как использовать чтобы изменить имя свойства, если хотите. Это часто необходимо сделать для создания псевдонима для имени свойства, которое является ключевым словом в VB ( Return , Error т. Д.). В этом случае я изменил codes и links как Lists как вы это делали.

  Dim jstr = ... from whereever Dim CodeLinks = JsonConvert.DeserializeObject(Of CodeLinkContainer)(jstr) Console.WriteLine(CodeLinks.meta.total) For Each Item In CodeLinks.codes Console.WriteLine(Item.title) Next 

Результат:

6
РАЗДЕЛ 1
РАЗДЕЛ 2
РАЗДЕЛ 3

  • Почему Словарь предпочтительнее Hashtable?
  • (OrElse и Or) и (AndAlso и And) - Когда использовать?
  • Различия между vbLf, vbCrLf и vbCr Константы
  • Обработка строк с помощью & или + в VB.NET
  • Как создать комбинации элементов из списка в .NET 4.0
  • Метод Lost Focus для текстового поля asp.net?
  • Поиск всех пространств имен в сборке с использованием Reflection (DotNET)
  • VB.NET progressbar backgroundworker
  • Использование двоеточий для размещения двух операторов в одной строке в Visual Basic
  • URL-адрес кликов в окне сообщений Winform?
  • заполнять дерево из списка путей
  • Interesting Posts

    Предупреждения Proguard “не могут писать ресурс (Дублирование записи в zip)”

    С точки зрения качества, что лучше: увеличение громкости в программном обеспечении, в ОС или на динамиках?

    Может ли служба / модуль по умолчанию в приложении Google App Engine быть дочерним элементом нестандартного по структуре папок?

    Баланс нагрузки с LAN и Wi-Fi

    Настройка типа содержимого запросов, выполняемых jQuery jqGrid

    Что делает Subversion для своего списка CA?

    Что такое разумный способ компоновки проекта Go

    Как создать multidimensional array numpy с переменным размером строки?

    Внедрение Rand

    Как создать RESTful поиск / фильтрацию?

    Укажите количество последовательных значений

    Различия в Clojure между Ref, Var, Agent, Atom, с примерами

    Смонтируйте раздел Windows с разрешением на чтение и запись, если возможно

    Http POST в BlackBerry

    Установка нескольких переменных среды в оболочке, созданной через пакетный скрипт Windows

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