Ошибка Json

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
Добрый.
Есть валидный json (проверял валидаторами разными + встроенным тестером) при парсинге
var json = JObject.Parse(resRequest);
выдает ошибку
Выполнение действия CSharp OwnCode. Error reading JObject from JsonReader. Current JsonReader item is not an object: StartArray. Path '', line 1, position 1.
Подскажите куда копать? что не так?
 

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
89427
вот так все отлично отрабатывает...
 

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
Вот json который надо распарсить
C#:
string json = @"[
  {
    'id': '69a7831f-f63b-4322-a940-e43c78e6b9ea',
    'et1': {
      'id': 'b554643e-f908-474c-83c5-08d662b2fe61',
      'eventName': '',
      'eventInfo': '0:0 (0:0)'
    },
    'et2': {
      'id': '881e509e-3672-4512-bad2-53de0484cbe1',
      'eventName': '',
      'eventInfo': ''
    }
  },
  {
    'id': '7373f7b2-9757-41c7-ab57-261468edcf79',
    'et1': {
      'id': '7b6df2a1-7144-447e-9952-d97779cdaec8',
      'eventName': '',
      'eventInfo': '0:0 (0:0)'
    },
    'et2': {
      'id': 'ae75a9a1-a31d-4457-8e6c-ffbb4be4b3f7',
      'eventName': '',
      'eventInfo': ''
    }
  }
]";
JObject o = JObject.Parse(json);
 

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Благодарностей
23
Баллы
18
89428
вот так все ок...
что с этим не так?
JObject o = JObject.Parse(json);
что не нравится?
спс
 

porileenvej

Client
Регистрация
09.05.2020
Сообщения
99
Благодарностей
131
Баллы
33
Ты пытаешься распарсить объект, хотя в данных массив.
Вместо
C#:
JObject o = JObject.Parse(json);
используй
C#:
JArray o = JArray.Parse(json);
 
  • Спасибо
Реакции: arbplv

umbra

Новичок
Регистрация
02.03.2022
Сообщения
5
Благодарностей
1
Баллы
3
я бы сделал более нахальней...

C#:
using Newtonsoft.Json;
dynamic results = JsonConvert.DeserializeObject<dynamic>(YOUR_JSON);
Сериализация/десериализация в шарпе часто подразумевает уже существующий класс с существующими полями, если какие-то из полей лишние относительно объявленного класса, то получится ошибка.

Выше привел код с приведением к типу dynamic, должно сработать.
 
  • Спасибо
Реакции: arbplv

Кто просматривает тему: (Всего: 3, Пользователи: 0, Гости: 3)