.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; }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5