Я не смог найти точный ответ, за который я так думаю, что у меня будет трещина в вопросе вопроса.vb.NET Deserialise Список JSON в объект
В настоящее время я пытаюсь десериализовать строку JSON в объект в vb.NET с помощью Json.NET; Я сделал несколько ранее, настроив соответствующие классы, а затем десериализуя строку на объект с помощью родительского класса, и они отлично работали, но этот, похоже, не совсем прав.
Пример строки Я пытаюсь сломать следующим образом:
[
{
"value": 12345,
"text": "Example Unique Text"
},
{
"InnerList": [
{
"value": 4746,
"text": "A duplicated entry of text"
},
{
"value": 4747,
"text": "A duplicated entry of text"
},
{
"value": 4748,
"text": "A duplicated entry of text"
},
{
"value": 4749,
"text": "A duplicated entry of text"
},
{
"value": 4750,
"text": "A duplicated entry of text"
},
{
"value": 4751,
"text": "A duplicated entry of text"
},
{
"value": 4752,
"text": "A duplicated entry of text"
},
{
"value": 4753,
"text": "A duplicated entry of text"
},
{
"value": 4754,
"text": "A duplicated entry of text"
},
{
"value": 4755,
"text": "A duplicated entry of text"
}
],
"duplicated": "Yes"
},
{
"value": 15298,
"text": "Another Example Unique Text"
},
{
"value": 959,
"text": "Yet more uniqueness"
},
{
"value": 801,
"text": "A final little bit of unique text"
}
]
Я попытался прохождения этого через ряд внешних инструментов, и все они возвращаются с теми же определениями класса, однако они, похоже, не работали. Так на основе моего понимания JSON я соединял следующее:
Public Class ItemDetails
Public Value As Integer
Public Text As String
End Class
Public Class ItemArray
Public DetailList As List(Of ItemDetails)
Public Duplicated As String
End Class
Public Class GeneralArray
Public GeneralList As List(Of ItemArray)
End Class
GeneralArray является родительским классом и то, что используется для разбора JSON.
Затем я пытаюсь десериализовать строку в родительский класс. В следующем примере, является JSON строка, представленная выше и JSONStringCollection является модуль, в котором GeneralArray определяется:
Dim JSONString As String
JSONString = "<JSONStringDetails>"
Dim JSONObj = JsonConvert.DeserializeObject(Of JSONStringCollection.GeneralArray)(JSONString)
К сожалению, при прохождении этого через следующее возвращается и рутинные перерывы:
необработанное исключение типа «Newtonsoft.Json.JsonSerializationException» произошло в Newtonsoft.Json.dll
Дополнительная информация: не может десериализации текущий массив JSON (например, [1,2,3]) в тип 'ShadOS.JSONStringCollection + GeneralArray', потому что для типа требуется объект JSON (например, {"name": "value"}) для десериализации .
Что мне не хватает с этим?
Не то, что знакомо с JSON, но похоже, что есть проблема с JSON, а не с десериализатором или вашим объектом. – Tim