1
у меня есть этот ответ JSON массива:JSON массив класса
[
{
"status": "active",
"url": "https:\/\/ikiosk.podio.com\/dev\/apps\/myusers",
"url_label": "myusers",
"space_id": 550628,
"link_add": "https:\/\/ikiosk.podio.com\/dev\/apps\/2304568\/items\/new",
"app_id": 2304568,
"date_field": false,
"link": "https:\/\/ikiosk.podio.com\/dev\/apps\/myusers",
"config": {
"allow_edit": true,
"description": "",
"item_name": "myusers",
"type": "standard",
"icon_id": 251,
"allow_create": true,
"usage": "",
"icon": "251.png",
"external_id": null,
"name": "myusers"
},
"url_add": "https:\/\/ikiosk.podio.com\/dev\/apps\/2304568\/items\/new"
},
{
"status": "active",
"url": "https:\/\/ikiosk.podio.com\/dev\/apps\/requests",
"url_label": "requests",
"space_id": 550628,
"link_add": "https:\/\/ikiosk.podio.com\/dev\/apps\/2299738\/items\/new",
"app_id": 2299738,
"date_field": true,
"link": "https:\/\/ikiosk.podio.com\/dev\/apps\/requests",
"config": {
"allow_edit": true,
"description": "",
"item_name": "request",
"type": "standard",
"icon_id": 251,
"allow_create": true,
"usage": "",
"icon": "251.png",
"external_id": null,
"name": "Requests"
},
"url_add": "https:\/\/ikiosk.podio.com\/dev\/apps\/2299738\/items\/new"
}
]
А вот классы:
Public Class GetAllApps
Public pApplication As PodioApplication
End Class
Public Class PodioApplication
Public status As String
End Class
Мой код здесь:
Dim client As New RestClient()
client.BaseUrl = "https://api.podio.com/"
Dim request As New RestRequest()
request.RequestFormat = DataFormat.Json
request = New RestRequest()
request.Method = Method.[GET]
request.RequestFormat = DataFormat.Json
request.AddParameter("oauth_token", access_token)
request.Resource = "/app/v2//"
Dim resp = client.Execute(Of List(Of GetAllApps))(request)
RichTextBox1.Text = resp.Content
Dim pApps As List(Of PodioApplication) = resp.Data.[Select](Function(c) c.pApplication).ToList()
MsgBox(pApps.Count)
For Each p As PodioApplication In pApps
MsgBox(p.status)
Next
массив json, который я написал ранее, является результатом resp.Content. В строке кода MsgBox (pApps.Count) принимаю правильное число (в этом случае это 2). Но в каждом цикле я принимаю ошибку исключения: «Ссылка на объект не установлена в экземпляр объекта».
Есть ли проблемы с моей реализацией, что-то не хватает?
Вы обстреливали это в отладчике? Я предполагаю, что ваш код десериализации (который вы не включили в свой вопрос) сломан и дает вам массив с 2 'null' в нем. (Или любые люди VB называют «null».) – millimoose
Я добавил все строки кода, которые я написал для этого. Проверьте это, пожалуйста. – kokazani
Я не могу найти 'RestClient' или' RestRequest' в MSDN, из какой библиотеки они. Кроме того, вы проверили в отладчике, чтобы узнать, что на самом деле находится в 'pApps'? (Я предполагаю, что вы уже проверили, подходит ли ваш ответ JSON в строке 'RichTextBox1.Text'.) – millimoose