Преобразование из типа 'JObject' в тип 'String' недопустимо - PullRequest
0 голосов
/ 09 ноября 2019

Я столкнулся с проблемой на VB.net, когда удаленная система возвращает мне список объектов Json в форме System.Collections.Generic.List. Я могу пройтись по списку и получить каждую строку, представляющую собой JsonObject, который выглядит примерно так:

{
  "Demo": {
    "_id": "8ebf5297-64bb-4c92-9883-0b528e3af26c",
    "_type": "cname",
    "status": "pending",
    "batch": 0,
    "action": null,
    "number": "2135551212",
    "cname_text": "DEMO CENAME",
    "history": {
      "created_on": "2019-11-08T12:41:56.1182915-08:00",
      "created_by": "DEMO",
      "batch_date": "0001-01-01T00:00:00"
    }
  }
}

, так как я могу преобразовать это в обычный объект, чтобы я мог легко получить доступ к значениям? Я попытался

Dim myData = JObject.Parse(row)

и

Dim myData = JsonConvert.DeserializeObject(Of Dictionary(Of String, Object))(row)

Оба создают ошибку

Произошло необработанное исключение типа 'System.InvalidCastException' в Microsoft.VisualBasic. dll Преобразование из типа 'JObject' в тип 'String' недопустимо.

1 Ответ

0 голосов
/ 09 ноября 2019

После того, как сводил меня с ума, я понял это. Удаленный сервис возвращает данные, которые VB.net не видит в виде строки, а представляет собой объект JObject, который нельзя преобразовать в строку. Поэтому, чтобы обойти это, я создал структуру, а затем использовал метод JObject from to Object, чтобы перевести мой объект Json в обычный объект.

Dim tmpRow = JObject.FromObject(row).ToObject(Of CnameRecord)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...