С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
IvanovaNA
1 / 1 / 0
Регистрация: 20.09.2016
Сообщений: 56
1

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

21.03.2017, 12:04. Просмотров 1636. Ответов 4

Всем привет! Помогите, плиз, разобраться с ошибкой:

An unhandled exception of type 'Newtonsoft.Json.JsonSerializationException' occurred in Newtonsoft.Json.dll

Additional information: Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'Test.Form_Main+RootObject' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.


C#
1
2
3
4
5
6
7
8
9
10
 public class RootObject
        {
            public string test { get; set; }
            public string test2 { get; set; }
            public string test3 { get; set; }
        }
 
string json = "[{ "test":"12213","test2":"24242","test3":"34535"]";
            RootObject newM = JsonConvert.DeserializeObject<RootObject>(json);
            rTB_Status.Text = newM.test;
Добавлено через 27 минут
Полный текст ошибки

Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'Test.Form_Main+RootObject' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.
Path '', line 1, position 1.


Добавлено через 38 минут
Нашла решение - нужно убрать квадратные скобки ][

Кто-нибудь подскажет, с помощью какой команды убрать из строки квадратные скобки?
Строка будет приходить с квадратными скобками, вручную не получится редактировать.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2017, 12:04
Ответы с готовыми решениями:

Ошибка при обработке Json - Cannot deserialize the current JSON array because the type requires a JSON object
Дополнительные сведения: Cannot deserialize the current JSON object (e.g....

Как получить из строки JSON токен используя JSON.NET?
Доброго времени суток, Господа. Поскажите пожалуйста. Я никогда не работал с...

JSON
Люди помогите отправить запрос... запрос должен быть с AMF(JSON) ну у меня...

Json override
Доброго времени суток! Народ подскажите пожалуйста кто знает как в Json .Net...

Десериализация JSON
Как для такого формата класс создать? , , ] исп. Newtonsoft.Json var...

4
some777
3 / 3 / 0
Регистрация: 25.09.2009
Сообщений: 122
21.03.2017, 12:35 2
Вы бы прислали ваши JSON-данные
0
Usaga
Эксперт .NET
5142 / 3504 / 616
Регистрация: 21.01.2016
Сообщений: 13,938
Завершенные тесты: 2
21.03.2017, 12:42 3
IvanovaNA, тебе сериализатор говорит, что такие данные можно только в виде массива string[] десериализовать.
0
kolorotur
Эксперт .NET
10735 / 8890 / 2226
Регистрация: 17.09.2011
Сообщений: 15,287
Завершенные тесты: 1
22.03.2017, 10:28 4
C#
1
2
var list = JsonConvert.DeserializeObject<List<RootObject>>(json);
RootObject newM = list.First();
0
IvanovaNA
1 / 1 / 0
Регистрация: 20.09.2016
Сообщений: 56
22.03.2017, 12:01  [ТС] 5
Подскажите, пожалуйста, как добраться до данных counts и date класса Number?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 public class RootObject
        {
            public string test { get; set; }
            public string test2 { get; set; }
            public string test3 { get; set; }
            public Rang Rang { get; set; }
        }
 
public class Rang
        {
            public List<Number> numbers { get; set; }
        }
 
 public class Number
        {
            public Count counts { get; set; }
            public string date { get; set; }
        }

C#
1
2
RootObject newM = JsonConvert.DeserializeObject<RootObject>(json);
rTB_Result.Text = newM.test;
0
22.03.2017, 12:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2017, 12:01

Десериализация JSON
Есть данные от известного источника в JSON: {&quot;response&quot;:} При помощи...

Разбор JSON
Всем привет! Помогите пожалуйста разобрать ответ сервера, мне самому не...

JSON и коллекции
Как с помощью JSON читать и записывать коллекции объектов? К примеру...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru