Я пытаюсь создать программу для LoL, которая позволит пользователям просматривать определенную статистику для игрока. Однако у меня возникают проблемы.JSON.Net Невозможно десериализовать текущий массив JSON
Ошибка, которую я получаю.
Дополнительная информация: Не может десериализации текущий массив JSON (например, [1,2,3]) в тип 'WindowsApplication1.Form1 + Rootobject' , так как тип требует объект JSON (например, { "имя": "value"}) до десериализовать правильно.
Это код, который у меня есть.
Public Class Rootobject
Public Property games As Integer
Public Property winPercent As Double
Public Property order As List(Of Class1)
Public Property role As String
End Class
Public Class Class1
Public Property order() As String
End Class
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim client As WebClient = New WebClient()
client.Headers.Add("Content-Type", "application/json")
Dim reply As String = client.DownloadString("skills/mostPopular?api_key=")
Dim rootObject As Rootobject = JsonConvert.DeserializeObject(Of Rootobject)(reply)
MsgBox(rootObject.games)
End Sub
Вот как выглядит JSON. (Id опубликовать URL, но это требует ключа API)
[
{
"games": 1650,
"winPercent": 46.9,
"order": [
"Q",
"W",
"E",
"Q",
"Q",
"R",
"Q",
"W",
"Q",
"W",
"R",
"W",
"W",
"E",
"E",
"R",
"E",
"E"
],
"role": "Support"
},
{
"games": 9769,
"winPercent": 51.8,
"order": [
"Q",
"W",
"E",
"Q",
"Q",
"R",
"Q",
"W",
"Q",
"W",
"R",
"W",
"W",
"E",
"E",
"R",
"E",
"E"
],
"role": "Middle"
}
]
При попытке совпасть структуру объекта .NET с JSON, я довольно часто создаю временный метод, создать новый объект временного (в вашем случае экземпляр 'Rootobject' заполнить его с фиктивными данными (удостоверяясь что я заполнил каждое свойство serializable), а затем сериализуем его в JSON. Тогда я знаю, что ожидается JSON, и я не в темноте. – parvee