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

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

21.03.2017, 12:04. Показов 8916. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
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. {&quot;name&quot;:&quot;value&quot;}) into...

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

Null reference при десерелизации JSON (Newtonsoft.Json)
Задача: достать из JSON ответа Название фирмы. Использую библиотеку Newtonsoft.Json. Сам код:...

Json.NET не нравится json - Unexpected character encountered while parsing value
Ошибка при десерилизации такого вот текста: { &quot;ishavework&quot;: false, &quot;num&quot;: null, ...

4
3 / 3 / 0
Регистрация: 25.09.2009
Сообщений: 122
21.03.2017, 12:35 2
Вы бы прислали ваши JSON-данные
0
Эксперт .NET
8868 / 6178 / 1031
Регистрация: 21.01.2016
Сообщений: 23,353
21.03.2017, 12:42 3
IvanovaNA, тебе сериализатор говорит, что такие данные можно только в виде массива string[] десериализовать.
0
Эксперт .NET
14879 / 11265 / 2952
Регистрация: 17.09.2011
Сообщений: 18,866
22.03.2017, 10:28 4
C#
1
2
var list = JsonConvert.DeserializeObject<List<RootObject>>(json);
RootObject newM = list.First();
0
1 / 1 / 0
Регистрация: 20.09.2016
Сообщений: 60
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2017, 12:01

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Распарсить с помощью Json.Net приходящий ответ в виде JSON
Нужна помощь с json {&quot;success&quot;:true, &quot;rgInventory&quot;:{ &quot;1025429056&quot;:{...

Парсинг JSON с short.pub посредством NewtonSoft.Json
Доброго времени суток. Имеется сокращалка сайтов short.pub, у которой есть API, который...

[JSON.NET] Как десериализовать Json с меняющимеся ключами?
Имеется структура Json ответа вида: { field1: { ...

Чтение JSON-файла с помощью Newtonsoft.Json
И так, у нас есть JSon-файл вот такого типа: { &quot;objects&quot;: { ...


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

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

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