Ошибка: "Не удается выполнить привязки исполняющей среды по нулевой ссылке"
Появляется ошибка при попытке вывести фотографии групп пользователя. Вот код метода:
void Save_Photo()
{
string photo = "";
string response = FunctionGroupPolz.Otpravka_Zaprosa_Polichit_Spisok_Group(user_id, 0, 10, access_token);
dynamic json = JObject.Parse(response);
try
{
photo = json.response[1].photo_200;
}
catch
{
try
{
photo = json.response[1].photo_100;
}
catch
{
photo = json.response[1].photo_50;
}
}
LG_Log_Text.Text = photo;
}
Код метода для получения списка групп:
public static string Otpravka_Zaprosa_Polichit_Spisok_Group(string Id, int offset, int count, string token)
{
var dannie = new HttpRequest();
string response = dannie.Get("https://api.vk.com/method/"
+ "groups.get" + "?"
+ "&" + "user_id=" + Id
+ "&" + "extended=" + "1"
+ "&" + "offset=" + offset
+ "&" + "count=" + count
+ "&" + "v=" + "5.126"
+ "&" + "access_token=" + token).ToString();
return response;
}
Вот результат json запроса:
{"response":{"count":502,"items":[{"id":32176202,"name":"Alt-Right","screen_name":"alterright","is_closed":0,"type":"page","is_admin":0,"is_member":1,"is_advertiser":0,"photo_50":"https:\/\/sun1-85.userapi.com\/impg\/c857628\/v857628503\/18d7a8\/tBj0PmnAYfk.jpg?size=50x0&quality=96&crop=0,0,1923,1923&sign=84e6d295514ffe2355b83b14a81a129e&c_uniq_tag=xacfiexJ2FVinkwLGFjH0FFP3ZPnKwompasvkDDB01c&ava=1","photo_100":"https:\/\/sun1-85.userapi.com\/impg\/c857628\/v857628503\/18d7a8\/tBj0PmnAYfk.jpg?size=100x0&quality=96&crop=0,0,1923,1923&sign=cd2b9d322ff5bfb1fcfcea52e5447512&c_uniq_tag=dSkQxi4CRtpviH77wdG3sqU22eVd2hARoXM7gRDc2n8&ava=1","photo_200":"https:\/\/sun1-85.userapi.com\/impg\/c857628\/v857628503\/18d7a8\/tBj0PmnAYfk.jpg?size=200x0&quality=96&crop=0,0,1923,1923&sign=65c7024905cee1457e5fae7b52f74b6b&c_uniq_tag=cuB-WG6aQWmOIpg1IQIfE0g85kqu9PSiVA3VVR7Waj8&ava=1"}]}}
Ответы (1 шт):
Меня в такое уныние ввергают подобные вопросы :(. Их огромное множество на stackoverflow.
Авторы этих вопросов наугад лепят обращение к свойствам json-объектов и элементам json-массивов.
Для начала зайдите на json.org и изучите структуру формата JSON. Там делов на несколько минут.
Кратко: json состоит из объектов, заключённых в фигурные скобки { } и массивов, заключённых в квадратные скобки [ ].
Я отформатировал ваш json для удобства просмотра:
{
"response": {
"count": 502,
"items": [
{
"id": 32176202,
"name": "Alt-Right",
"screen_name": "alterright",
"is_closed": 0,
"type": "page",
"is_admin": 0,
"is_member": 1,
"is_advertiser": 0,
"photo_50": "https:...",
"photo_100": "https:...",
"photo_200": "https:..."
}
]
}
}
У корневого объекта одно свойство response. Которое тоже является объектом - фигурные скобки. С какой стати вы пишете responce[1]? (Кстати, опечатку вы так и не исправили). Ещё раз: response - это объект, а не массив.
А вот items - массив. К нему следует обращаться items[i], где i - индекс.
Итого, если вам нужно обратиться к свойствам photo_*, это может выглядеть так:
string photo = json.response.items[0].photo_50;