Ошибка при обработке Json - Cannot deserialize the current JSON array because the type requires a JSON object - C# (249477)

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

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

Дополнительные сведения: Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List`1[HitClient.MyBook]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly. Всем привет! Помогите, плиз, разобраться такой ответ загнать в лист, записей более 3 тысяч: Ответ без массива у меня получается обрабатывать, а в такой форме никак не разумею. Я делаю так, но что-то не выходит:
Листинг программы
  1. static class MyClass
  2. {
  3. public static List<MyBook> MyBookL = new List<MyBook>();
  4. }
  5.  
  6. class MyBook
  7. {
  8. public float volume{ get; set; }
  9. public float size { get; set; }
  10. }
Листинг программы
  1. var jsonobj = JsonConvert.DeserializeObject<List<MyBook>>(Mstr);
  2. MyClass.MyBookL = jsonobj;
Mstr = JSON в такой форме:
Листинг программы
  1. "{\"alfa\":[{\"volume\":\"0.075037\",\"size\":\"0.008\"},{\"volume\":\"0.075040\",\"size\":\"3.560\"}],\"delta\":[
  2. {\"volume\":\"0.075018\",\"size\":\"0.005\"},{\"volume\":\"0.075008\",\"size\":\"0.227\"}]}" string
Пример: { "alfa": [ { "volume": "10", "size": "0.088" }, { "volume": "0.046800", "size": "0.200" } ], "delta": [ { "volume": "0.046001", "size": "0.005" }, { "volume": "0.046000", "size": "0.200" } ] } Спасибо!

Решение задачи: «Ошибка при обработке Json - Cannot deserialize the current JSON array because the type requires a JSON object»

textual
Листинг программы
  1. var jsonobj = JsonConvert.DeserializeObject<Books>(Mstr);                    
  2. MyClass.MyBookL = jsonobj.alfa;

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


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

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

15   голосов , оценка 4.467 из 5

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

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

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