Задать вопрос
@zepars

Как создать паттерн JSON, если неизвестно имя параметра?

Вконтакте API выдает такой JSON результат:
{
"response": [
2,
{
"gid": 20629724,
"name": "Хабрахабр",
"screen_name": "habr",
"is_closed": 0,
"type": "page",
"is_admin": 0,
"is_member": 1,
"photo": "http:\/\/cs625620.vk.me\/v625620167\/2ac9d\/QholHa-tKsI.jpg",
"photo_medium": "http:\/\/cs625620.vk.me\/v625620167\/2ac9c\/aqvP2mwKWvQ.jpg",
"photo_big": "http:\/\/cs625620.vk.me\/v625620167\/2ac9b\/F1E7HSFXLr0.jpg"
},
{
"gid": 69578162,
"name": "Хабраконь",
"screen_name": "horse_habr",
"is_closed": 0,
"type": "page",
"is_admin": 0,
"is_member": 0,
"photo": "http:\/\/cs606920.vk.me\/v606920089\/500b\/HMVpfZKx_uQ.jpg",
"photo_medium": "http:\/\/cs606920.vk.me\/v606920089\/500a\/2R8ePCnuhiw.jpg",
"photo_big": "http:\/\/cs606920.vk.me\/v606920089\/5009\/-pPfLgf2oB4.jpg"
}
]
}


Мне необходимо десериализировать JSON в List. Я делаю так:
JavaScriptSerializer().Deserialize<List<VKPatternGroups>>(JSON); 
 public class VKPatternGroups
            {
                public List<VKPatternGroup> response { get; set; } //IList<VKPatternGroup>
            }

            public class VKPatternGroup
            {
                public string gid { get; set; }
                public string name { get; set; }
                public string type { get; set; }
               // public string members_count { get; set; }
               
            }

Но кол-во элементов в листе: 0. В интернете много примеров, но там есть имя параметров, а тут, насколько я понял, только значения у response. Как быть?
  • Вопрос задан
  • 742 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@Gromadchuk
Используйте последнюю версию api, а не 3.0. Тогда не будет таких недоразумений.

v=5.34

https://vk.com/dev/versions
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ImmortalCAT
@ImmortalCAT
C# loving
public class VKGroupObject
    {
        public ResponseGroup response { get; set; }
    }

    public class ResponseGroup
    {
        public string count { get; set; }
        public IList<VKGroupItems> items { get; set; }
    }
    public class VKGroupItems
    {
        public string id { get; set; }
        public string name { get; set; }
        public string screen_name { get; set; }
        public string is_admin { get; set; }
        public string admin_level { get; set; }
        public string photo_50 { get; set; }
    }


Это мой класс
public List<T> GetData<T>(string json)
        {
            List<T> group = new List<T>();
            group.Add(JsonConvert.DeserializeObject<T>(json));
            return group;
        }

вот метод десериализации
P.S. Подключаю и использую Newtonsoft.Json
-> Install-Package Newtonsoft.Json
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы