Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / WinForms, .Net Framework |
![]() ![]() |
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 сериализовался так:
Как такое сделать? |
19 мар 21, 08:36 [22297094] Ответить | Цитировать Сообщить модератору |
Shocker.Pro Member Откуда: ->|<- :адуктО Сообщений: 22306 |
трансформировать в Dictionary<string, string[]> |
19 мар 21, 09:43 [22297112] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
Shocker.Pro Member Откуда: ->|<- :адуктО Сообщений: 22306 |
А, да, я что-то глупость сказал спросонья ) А в чем нестандартность сериализации-то? |
19 мар 21, 09:49 [22297116] Ответить | Цитировать Сообщить модератору |
senglory Member Откуда: Сообщений: 107 |
В том, что массив не через [] сериализуется, а просто как последовательно перечисление его элементов |
||||
19 мар 21, 09:51 [22297118] Ответить | Цитировать Сообщить модератору |
fkthat Member Откуда: Сообщений: 4643 |
И что это у тебя за JSON такой диковинный будет с дублирующимися ключами? |
||||
19 мар 21, 10:13 [22297126] Ответить | Цитировать Сообщить модератору |
senglory Member Откуда: Сообщений: 107 |
Ну, у клиента команда такой требует. |
||||||||
19 мар 21, 10:17 [22297130] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
senglory Member Откуда: Сообщений: 107 |
Не полностью валидный (не каноничный) - не значит совсем не валидный. Остальные поля в ReqDto сериализуются там канонично. Да, у них там свой парсер такой "крастоты", и менять ради меня они его не будут. Сообщение было отредактировано: 19 мар 21, 10:30 |
||||
19 мар 21, 10:36 [22297143] Ответить | Цитировать Сообщить модератору |
Shocker.Pro Member Откуда: ->|<- :адуктО Сообщений: 22306 |
ну воткни какой-то уникальный ключ в качестве поля. А потом в получившейся выходной строке замени этот ключ на это безобразие replace-ом )) |
19 мар 21, 10:41 [22297148] Ответить | Цитировать Сообщить модератору |
fkthat Member Откуда: Сообщений: 4643 |
Как обычно, творческие творцы, гордые за свой шестиколесный велосипед ![]() |
||||
19 мар 21, 11:01 [22297164] Ответить | Цитировать Сообщить модератору |
senglory Member Откуда: Сообщений: 107 |
А как-то не так дубово, а через Newtonsoft.* и что там в его потрохах можно это сделать? Тешу себя мыслями, что авось там бугор у девелоперов сменится и такой наркоманский JSON предадут анафеме и прикажут в каноничный вид привести, и тогда мне проще будет. |
||||
19 мар 21, 11:08 [22297172] Ответить | Цитировать Сообщить модератору |
Shocker.Pro Member Откуда: ->|<- :адуктО Сообщений: 22306 |
senglory, Ну пробуй. Тут точно кастомное расширение потребуется, интерфейсы-то есть соответствующие, но вот пропустит ли сам сериализатор на выход такой json - тут-то я совсем не уверен. |
19 мар 21, 11:46 [22297193] Ответить | Цитировать Сообщить модератору |
Roman Mejtes Member Откуда: г. Пермь Сообщений: 4159 |
а что не так то? поясните, я не улавливаю сути того, почему это какой то не валидный вариант |
19 мар 21, 12:23 [22297220] Ответить | Цитировать Сообщить модератору |
hVostt Member Откуда: Сообщений: 19144 |
https://docs.microsoft.com/ru-ru/dotnet/standard/serialization/system-text-json-converters-how-to |
||||
19 мар 21, 12:41 [22297234] Ответить | Цитировать Сообщить модератору |
Shocker.Pro Member Откуда: ->|<- :адуктО Сообщений: 22306 |
|
||||
19 мар 21, 12:44 [22297240] Ответить | Цитировать Сообщить модератору |
andreymx Member Откуда: Запорожье Сообщений: 55425 |
|
||||||||
20 мар 21, 08:23 [22297612] Ответить | Цитировать Сообщить модератору |
Все форумы / WinForms, .Net Framework | ![]() |