Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
 NET Core 3.1 - Нужна нестандартная JSON сериализация  [new]
senglory
Member

Откуда:
Сообщений: 107
public class Merch
{
public string Name {get; set;}
public string[] Pos {get; set;}
}


public class ReqDto
{
public Merch[] Agents {get; set;}
}


Нужно чтобы Agents в инстансе ReqDto сериализовался так:


"MID: "name from 1st in Agents",
"POSIDS":[ тут стандартный список строк в JSON ],

"MID: "name from 2nd in Agents",
"POSIDS":[ тут стандартный список строк в JSON ],

...

"MID: "name from Nth in Agents",
"POSIDS":[ тут стандартный список строк в JSON ],

Как такое сделать?
19 мар 21, 08:36    [22297094]     Ответить | Цитировать Сообщить модератору
 Re: NET Core 3.1 - Нужна нестандартная JSON сериализация  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 22306
трансформировать в
Dictionary<string, string[]>
19 мар 21, 09:43    [22297112]     Ответить | Цитировать Сообщить модератору
 Re: NET Core 3.1 - Нужна нестандартная JSON сериализация  [new]
fkthat
Member

Откуда:
Сообщений: 4643
public class Merch
{
    [JsonPropertyName("MID")]
    public string Name {get; set;}

    [JsonPropertyName("POSIDS")]
    public string[] Pos {get; set;}
}
19 мар 21, 09:45    [22297113]     Ответить | Цитировать Сообщить модератору
 Re: NET Core 3.1 - Нужна нестандартная JSON сериализация  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 22306
А, да, я что-то глупость сказал спросонья )
А в чем нестандартность сериализации-то?
19 мар 21, 09:49    [22297116]     Ответить | Цитировать Сообщить модератору
 Re: NET Core 3.1 - Нужна нестандартная JSON сериализация  [new]
senglory
Member

Откуда:
Сообщений: 107
Shocker.Pro
А, да, я что-то глупость сказал спросонья )
А в чем нестандартность сериализации-то?


В том, что массив не через [] сериализуется, а просто как последовательно перечисление его элементов
19 мар 21, 09:51    [22297118]     Ответить | Цитировать Сообщить модератору
 Re: NET Core 3.1 - Нужна нестандартная JSON сериализация  [new]
fkthat
Member

Откуда:
Сообщений: 4643
senglory
В том, что массив не через [] сериализуется, а просто как последовательно перечисление его элементов

И что это у тебя за JSON такой диковинный будет с дублирующимися ключами?
19 мар 21, 10:13    [22297126]     Ответить | Цитировать Сообщить модератору
 Re: NET Core 3.1 - Нужна нестандартная JSON сериализация  [new]
senglory
Member

Откуда:
Сообщений: 107
fkthat
senglory
В том, что массив не через [] сериализуется, а просто как последовательно перечисление его элементов

И что это у тебя за JSON такой диковинный будет с дублирующимися ключами?


Ну, у клиента команда такой требует.
19 мар 21, 10:17    [22297130]     Ответить | Цитировать Сообщить модератору
 Re: NET Core 3.1 - Нужна нестандартная JSON сериализация  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 22306
Стоп, если вот это
"MID: "name from 1st in Agents",
"POSIDS":[ тут стандартный список строк в JSON ],

"MID: "name from 2nd in Agents",
"POSIDS":[ тут стандартный список строк в JSON ],
кусок jsona, то это не json - он не валидный. О какой тут вообще сериализации тогда речь идет.

Тут еще и с кавычками какая-то хрень - это тоже требование заказчика?
19 мар 21, 10:23    [22297133]     Ответить | Цитировать Сообщить модератору
 Re: NET Core 3.1 - Нужна нестандартная JSON сериализация  [new]
senglory
Member

Откуда:
Сообщений: 107
Shocker.Pro
Стоп, если вот это
"MID: "name from 1st in Agents",
"POSIDS":[ тут стандартный список строк в JSON ],

"MID: "name from 2nd in Agents",
"POSIDS":[ тут стандартный список строк в JSON ],
кусок jsona, то это не json - он не валидный. О какой тут вообще сериализации тогда речь идет.

Тут еще и с кавычками какая-то хрень - это тоже требование заказчика?


Не полностью валидный (не каноничный) - не значит совсем не валидный. Остальные поля в ReqDto сериализуются там канонично.
Да, у них там свой парсер такой "крастоты", и менять ради меня они его не будут.

Сообщение было отредактировано: 19 мар 21, 10:30
19 мар 21, 10:36    [22297143]     Ответить | Цитировать Сообщить модератору
 Re: NET Core 3.1 - Нужна нестандартная JSON сериализация  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 22306
ну воткни какой-то уникальный ключ в качестве поля.
А потом в получившейся выходной строке замени этот ключ на это безобразие replace-ом ))
19 мар 21, 10:41    [22297148]     Ответить | Цитировать Сообщить модератору
 Re: NET Core 3.1 - Нужна нестандартная JSON сериализация  [new]
fkthat
Member

Откуда:
Сообщений: 4643
senglory
Да, у них там свой парсер такой "крастоты", и менять ради меня они его не будут.

Как обычно, творческие творцы, гордые за свой шестиколесный велосипед
19 мар 21, 11:01    [22297164]     Ответить | Цитировать Сообщить модератору
 Re: NET Core 3.1 - Нужна нестандартная JSON сериализация  [new]
senglory
Member

Откуда:
Сообщений: 107
Shocker.Pro
ну воткни какой-то уникальный ключ в качестве поля.
А потом в получившейся выходной строке замени этот ключ на это безобразие replace-ом ))


А как-то не так дубово, а через Newtonsoft.* и что там в его потрохах можно это сделать? Тешу себя мыслями, что авось там бугор у девелоперов сменится и такой наркоманский JSON предадут анафеме и прикажут в каноничный вид привести, и тогда мне проще будет.
19 мар 21, 11:08    [22297172]     Ответить | Цитировать Сообщить модератору
 Re: NET Core 3.1 - Нужна нестандартная JSON сериализация  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 22306
senglory,

Ну пробуй. Тут точно кастомное расширение потребуется, интерфейсы-то есть соответствующие, но вот пропустит ли сам сериализатор на выход такой json - тут-то я совсем не уверен.
19 мар 21, 11:46    [22297193]     Ответить | Цитировать Сообщить модератору
 Re: NET Core 3.1 - Нужна нестандартная JSON сериализация  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 4159
а что не так то? поясните, я не улавливаю сути того, почему это какой то не валидный вариант
19 мар 21, 12:23    [22297220]     Ответить | Цитировать Сообщить модератору
 Re: NET Core 3.1 - Нужна нестандартная JSON сериализация  [new]
hVostt
Member

Откуда:
Сообщений: 19144
senglory
Как такое сделать?


https://docs.microsoft.com/ru-ru/dotnet/standard/serialization/system-text-json-converters-how-to
19 мар 21, 12:41    [22297234]     Ответить | Цитировать Сообщить модератору
 Re: NET Core 3.1 - Нужна нестандартная JSON сериализация  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 22306
Roman Mejtes
а что не так то? поясните, я не улавливаю сути того, почему это какой то не валидный вариант
повторяющиеся ключи
19 мар 21, 12:44    [22297240]     Ответить | Цитировать Сообщить модератору
 Re: NET Core 3.1 - Нужна нестандартная JSON сериализация  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 55425
fkthat
senglory
Да, у них там свой парсер такой "крастоты", и менять ради меня они его не будут.

Как обычно, творческие творцы, гордые за свой шестиколесный велосипед
ну если за это заплотють реальные деньги, то почему бы нет
20 мар 21, 08:23    [22297612]     Ответить | Цитировать Сообщить модератору
Все форумы / WinForms, .Net Framework Ответить