.NET 4.x Десериализация JSON - Object property name expected - C#
Формулировка задачи:
Здравствуйте, помогите пожалуйста. Пытаюсь сделать десериализацию JSON с помощью Newtonsoft.Json.
Eсть следующий запрос в формате JSON:
я создал следующие классы
Десериализацию провожу следующим образом:
Но получаю ошибку:
Как ее можно исправить?
response: {
count: 59,
items: [{
id: 28261334,
name: 'TJ',
screen_name: 'tj',
is_closed: 0,
type: 'page',
is_admin: 0,
is_member: 0,
photo_50: 'https://pp.vk.me/...f2c/06crfCSL1KY.jpg',
photo_100: 'https://pp.vk.me/...f2b/PI7kwl3zvtQ.jpg',
photo_200: 'https://pp.vk.me/...f2a/-XlzvdumPwQ.jpg'
}]
}[DataContract]
public class GroupsGet
{
[DataMember(Name = "count")]
public string count { get; set; }
[DataMember(Name = "items")]
public List<Items> items { get; set; }
}
[DataContract]
public class Items
{
[DataMember(Name = "id")]
public string id { get; set; }
[DataMember(Name = "name")]
public string name { get; set; }
[DataMember(Name = "members_count")]
public string members_count { get; set; }
}if (response != null)
{
var strreader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
var responseToString = strreader.ReadToEnd();
JToken token = JToken.Parse(responseToString);
_groupsGet = token["response"][0].ToObject<GroupsGet>();
}
Accessed JObject values with invalid key value: 0. Object property name expected.
Решение задачи: «.NET 4.x Десериализация JSON - Object property name expected»
textual
Листинг программы
using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
internal class Program
{
private static void Main(string[] args)
{
var str = @"{
'response': {
'count': 59,
'items': [
{
'id': 28261334,
'name': 'TJ',
'screen_name': 'tj',
'is_closed': 0,
'type': 'page',
'is_admin': 0,
'is_member': 0,
'photo_50': 'https://pp.vk.me/...f2c/06crfCSL1KY.jpg',
'photo_100': 'https://pp.vk.me/...f2b/PI7kwl3zvtQ.jpg',
'photo_200': 'https://pp.vk.me/...f2a/-XlzvdumPwQ.jpg'
}
]
}
}
";
var j = JsonConvert.DeserializeObject<MyClass>(str);
}
}
public class Response
{
public int count { get; set; }
public List<Item> items { get; set; }
}
public class Item
{
public int Id { get; set; }
public string Name { get; set; }
public string Screen_Name { get; set; }
public int Is_Closed { get; set; }
public string Type { get; set; }
public int Is_Admin { get; set; }
public int Is_Member { get; set; }
public string Photo_50 { get; set; }
public string Photo_100 { get; set; }
public string Photo_200 { get; set; }
}
public class MyClass
{
public Response Response { get; set; }
}