Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# .NET

Войти
Регистрация
Восстановить пароль
 
IvanovaNA
1 / 1 / 0
Регистрация: 20.09.2016
Сообщений: 56
#1

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

21.03.2017, 12:04. Просмотров 1002. Ответов 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 (C#):

JSON - C#
Люди помогите отправить запрос... запрос должен быть с AMF(JSON) ну у меня никак не получается.... Напишите пример как составить такой...

Разбор JSON - C#
Всем привет! Помогите пожалуйста разобрать ответ сервера, мне самому не хватает знаний. Я использую Newtonsoft.Json.dll -...

Десериализация JSON - C#
Есть данные от известного источника в JSON: {&quot;response&quot;:} При помощи Newtonsoft.Json они успешно распарсиваются в структуру: public...

Разбор JSON - C#
Нужно разобрать json {'name','xxx'} и вывести все имена в массиве, есть у кого подобная реализация? Добавлено через 3 минуты и какой...

Парсинг JSON - C#
Итак что надо сделать: делем запрос на сервер,нам приходят числа через азпятые там допустим: 2412412512, 1241255235, 12412125124,...

.NET 4.x JSON и коллекции - C#
Как с помощью JSON читать и записывать коллекции объектов? К примеру List&lt;SomeClass&gt;

4
some777
3 / 3 / 0
Регистрация: 25.09.2009
Сообщений: 122
21.03.2017, 12:35 #2
Вы бы прислали ваши JSON-данные
0
Usaga
Эксперт .NET
3415 / 2867 / 503
Регистрация: 21.01.2016
Сообщений: 11,302
Завершенные тесты: 2
21.03.2017, 12:42 #3
IvanovaNA, тебе сериализатор говорит, что такие данные можно только в виде массива string[] десериализовать.
0
kolorotur
Эксперт .NET
9859 / 8238 / 1384
Регистрация: 17.09.2011
Сообщений: 14,156
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 от vk - C#
Использую DataContractJsonSerializer и не понимаю как распарсить такой json: {&quot;response&quot;: } Всё бы хорошо, если бы не эта 2,...

Парсер JSON массива - C#
Люди добрые, помогите пожалуйста. Имеется json-ответ от сервера вида: классы и переменные заданы примерно так: ...

Считывание JSON с компорта - C#
Нужно считывать данные в JSON с компорта. Варианта вижу два: DataContractJsonSerializer: Device dev = new Device(); ...

.NET 4.x Не получается прочитать json - C#
доброго времени суток. столкнулся с такой проблемой, не могу спарсить значения с json. как не пытался не получается.. success: True...


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

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

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