.NET 4.x Десериализация JSON - Object property name expected - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, помогите пожалуйста. Пытаюсь сделать десериализацию JSON с помощью Newtonsoft.Json. Eсть следующий запрос в формате JSON:
Листинг программы
  1. response: {
  2. count: 59,
  3. items: [{
  4. id: 28261334,
  5. name: 'TJ',
  6. screen_name: 'tj',
  7. is_closed: 0,
  8. type: 'page',
  9. is_admin: 0,
  10. is_member: 0,
  11. photo_50: 'https://pp.vk.me/...f2c/06crfCSL1KY.jpg',
  12. photo_100: 'https://pp.vk.me/...f2b/PI7kwl3zvtQ.jpg',
  13. photo_200: 'https://pp.vk.me/...f2a/-XlzvdumPwQ.jpg'
  14. }]
  15. }
я создал следующие классы
Листинг программы
  1. [DataContract]
  2. public class GroupsGet
  3. {
  4. [DataMember(Name = "count")]
  5. public string count { get; set; }
  6. [DataMember(Name = "items")]
  7. public List<Items> items { get; set; }
  8. }
  9. [DataContract]
  10. public class Items
  11. {
  12. [DataMember(Name = "id")]
  13. public string id { get; set; }
  14. [DataMember(Name = "name")]
  15. public string name { get; set; }
  16. [DataMember(Name = "members_count")]
  17. public string members_count { get; set; }
  18. }
Десериализацию провожу следующим образом:
Листинг программы
  1. if (response != null)
  2. {
  3. var strreader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
  4. var responseToString = strreader.ReadToEnd();
  5. JToken token = JToken.Parse(responseToString);
  6. _groupsGet = token["response"][0].ToObject<GroupsGet>();
  7. }
Но получаю ошибку:
Accessed JObject values with invalid key value: 0. Object property name expected.
Как ее можно исправить?

Решение задачи: «.NET 4.x Десериализация JSON - Object property name expected»

textual
Листинг программы
  1. using System.Collections.Generic;
  2. using Newtonsoft.Json;
  3. using Newtonsoft.Json.Serialization;
  4.  
  5. internal class Program
  6. {
  7.     private static void Main(string[] args)
  8.     {
  9.         var str = @"{
  10.  
  11.   'response': {
  12.  
  13.      'count': 59,
  14.  
  15.      'items': [
  16.  
  17.         {
  18.  
  19.            'id': 28261334,
  20.  
  21.            'name': 'TJ',
  22.  
  23.            'screen_name': 'tj',
  24.  
  25.            'is_closed': 0,
  26.  
  27.            'type': 'page',
  28.  
  29.            'is_admin': 0,
  30.  
  31.            'is_member': 0,
  32.  
  33.            'photo_50': 'https://pp.vk.me/...f2c/06crfCSL1KY.jpg',
  34.  
  35.            'photo_100': 'https://pp.vk.me/...f2b/PI7kwl3zvtQ.jpg',
  36.  
  37.            'photo_200': 'https://pp.vk.me/...f2a/-XlzvdumPwQ.jpg'
  38.  
  39.         }
  40.  
  41.      ]
  42.  
  43.   }
  44.  
  45. }
  46.  
  47. ";
  48.  
  49.         var j = JsonConvert.DeserializeObject<MyClass>(str);
  50.     }
  51. }
  52.  
  53. public class Response
  54. {
  55.     public int count { get; set; }
  56.     public List<Item> items { get; set; }
  57. }
  58.  
  59. public class Item
  60. {
  61.     public int Id { get; set; }
  62.     public string Name { get; set; }
  63.     public string Screen_Name { get; set; }
  64.    
  65.     public int Is_Closed { get; set; }
  66.     public string Type { get; set; }
  67.     public int Is_Admin { get; set; }
  68.     public int Is_Member { get; set; }
  69.     public string Photo_50 { get; set; }
  70.     public string Photo_100 { get; set; }
  71.     public string Photo_200 { get; set; }
  72. }
  73.  
  74.  
  75. public class MyClass
  76. {
  77.     public Response Response { get; set; }
  78. }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут