13 / 13 / 2
Регистрация: 22.04.2010
Сообщений: 649
|
||||||
1 | ||||||
Как правильно десериализовать JSON?16.07.2015, 00:16. Показов 7082. Ответов 23
Подскажите, что я делаю не так?
0
|
16.07.2015, 00:16 | |
Ответы с готовыми решениями:
23
Правильно десериализовать JSON Правильно десериализовать Json [JSON.NET] Как десериализовать Json с меняющимеся ключами? Как десериализовать такой JSON |
Администратор
|
||||||||||||||||
16.07.2015, 00:41 | 2 | |||||||||||||||
Сообщение было отмечено koc94ok как решение
Решение
koc94ok, у тебя на вход следующий JSON:
1
|
13 / 13 / 2
Регистрация: 22.04.2010
Сообщений: 649
|
|
16.07.2015, 17:29 [ТС] | 3 |
Еще такой вопрос, как перевести эту дату в формат DateTime чисто в секунды??
0
|
Администратор
|
|
16.07.2015, 19:50 | 4 |
koc94ok, лично мне данный формат - "Jul 15 2015 17: +0" - понятен только частично. В начале месяц/день/год, а что дальше мне непонятно. У тебя по идее есть его описание поэтому исходя из него составь строку формата для DateTime.ParseExact.
1
|
13 / 13 / 2
Регистрация: 22.04.2010
Сообщений: 649
|
|||||||||||
20.07.2015, 16:46 [ТС] | 5 | ||||||||||
OwenGlendower, С форматом я разобрался это UTC отклонение времени и сам парс даты из строки в общем будет таким:
0
|
Администратор
|
|||||||||||
20.07.2015, 17:38 | 6 | ||||||||||
Сообщение было отмечено koc94ok как решение
Решение
koc94ok, насколько я понимаю атрибут JsonConverter сработает только при вызове JsonConvert.DeserializeObject(). При этом десериализовать нужно весь объект PriceItem сразу. То что ты назначил атрибут JsonConverter не играет никакой роли т.к. из строки Date = (DateTime)j[0] библиотека Json.NET никак не может узнать что это значение относится к типу PriceItem. Я бы не стал мудрить и написал обычную функцию для перевода:
1
|
13 / 13 / 2
Регистрация: 22.04.2010
Сообщений: 649
|
|
20.07.2015, 17:52 [ТС] | 7 |
Зачем? В данном случае искомую дату переводит автоматически в местный часовой пояс, меня это устраивает.
0
|
13 / 13 / 2
Регистрация: 22.04.2010
Сообщений: 649
|
|||||||||||
22.07.2015, 13:48 [ТС] | 9 | ||||||||||
Наброски классов:
0
|
Администратор
|
|||||||||||
22.07.2015, 14:08 | 10 | ||||||||||
Нет. Я бы выбрал эти поля с помощью метода SelectToken:
2
|
13 / 13 / 2
Регистрация: 22.04.2010
Сообщений: 649
|
||||||
28.07.2015, 21:16 [ТС] | 11 | |||||
OwenGlendower, А если приходит массив, можно ли его разбить на какой-нибудь как в прошлом примере с токенами, только массив в список , который будет отображать только два элемента объектов массива к примеру name,i_name не обращая внимания на другие данные
0
|
Администратор
|
||||||
28.07.2015, 23:22 | 12 | |||||
koc94ok, примерно так можно:
2
|
13 / 13 / 2
Регистрация: 22.04.2010
Сообщений: 649
|
||||||
29.07.2015, 22:46 [ТС] | 13 | |||||
OwenGlendower,
0
|
Администратор
|
|
29.07.2015, 23:01 | 14 |
koc94ok, ты не привел полный пример JSON документа. Поэтому я не знаю в каком именно месте находится массив с данными. Поэтому шаг выборки массива из документа тебе нужно дописать самостоятельно.
0
|
13 / 13 / 2
Регистрация: 22.04.2010
Сообщений: 649
|
||||||||||||||||
29.07.2015, 23:09 [ТС] | 15 | |||||||||||||||
OwenGlendower, Документом и был массив. т.е. сразу начинается массив в документе
Error reading JObject from JsonReader. Current JsonReader item is not an object: StartArray. Path '', line 1, position 1. Ругается на строку
0
|
Заблокирован
|
|||||||||||
29.07.2015, 23:44 | 16 | ||||||||||
Сообщение было отмечено koc94ok как решение
Решение
koc94ok, тогда используйте:
koc94ok, Я не знаток JSONPath, думаю можно намного проще, чем такой вариант:
Код
12643069 [222] 12222 [3333]
1
|
Администратор
|
||||||
30.07.2015, 06:09 | 17 | |||||
koc94ok,
Ты подаешь на вход JSON массив ([...]), в то время как JObject ожидает JSON объект ({...}). Надо использовать правильный класс для разбора.
В данном случае можно обойтись и без парсинга. JsonConvert умеет преобразовывать массив целиком:
3
|
13 / 13 / 2
Регистрация: 22.04.2010
Сообщений: 649
|
||||||||||||||||
31.07.2015, 18:39 [ТС] | 20 | |||||||||||||||
OwenGlendower, все работает.
Хочу пойти еще дальше :-) Лазая по форуму набрел на такую вот замысловатую конструкцию:
имеем ответ json
0
|
31.07.2015, 18:39 | |
31.07.2015, 18:39 | |
Помогаю со студенческими работами здесь
20
Как десериализовать json-строку в обьект? Подскажите как десериализовать JSON строку в объекты? Как десериализовать JSON если имя объекта все время меняется ? Десериализовать JSON Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |