|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Есть класс Request и метод контроллера, который принимает этот класс в качестве параметра: Код: c# 1. 2.
Как я понимаю, класс сериализуется из Json текста, которой в этот метод посылают пользователи. Дело в том, что стандартный сериализатор сериализует объект не совсем так, как хотелось бы (в частности List<> и Dictonary<>). Можно как то написать свой сериализатор ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 13:42 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Что-то каша какая-то. У тебя пользователи не в браузере, а в толстом клиенте на .NET? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 13:47 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BМожно как то написать свой сериализатор ? Реализовать свой IModelBinder , либо попытаться настроить сериализатор. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 13:55 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_B, Нажми F12 и покажи что отправляют прльзователи в кавычках. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:04 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Shocker.ProЧто-то каша какая-то. У тебя пользователи не в браузере, а в толстом клиенте на .NET? Что то типо. И не обязательно на .NET По сути, текст в POST может сделать кто угодно, и как угодно. Проблема со списками, которые есть в классе Request. Конечно, можно заставить присылать Json строгом в формате под текущий сериализатор. Но где гарантия, что со обновлением VisualStudio этот формат не измениться ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:05 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Shocker.ProЧто-то каша какая-то. У тебя пользователи не в браузере, а в толстом клиенте на .NET?присоединяюсь к вопросу) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:06 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BПроблема со списками,покажи их. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:07 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BПо сути, текст в POST может сделать кто угодно, и как угодно.добро пожаловать в REST. 1. Можно не делать много параметров и передать их в урл без json. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:09 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BКонечно, можно заставить присылать Json строгом в формате под текущий сериализатор. Но где гарантия, что со обновлением VisualStudio этот формат не измениться ? А был прецедент? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:11 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BНо где гарантия, что со обновлением VisualStudio этот формат не измениться ?А причем тут вообще VS? Какое отношение сериализатор к ней имеет? Как связаны этим две вещи? Valery_Bстандартный сериализатор сериализует объектValery_BИ не обязательно на .NET По сути, текст в POST может сделать кто угодно, и как угодно. Причем тут сериализатор на сервере, если тебе извне непонятно кто непонятно в каком формате присылает JSON. Вероятно, речь идет о десериализации. Но тут опять же подход непонятен. Ты пишешь АПИ, к нему есть определенные требования к присылаемой информации, если информация приходит в некорректном формате, то клиент получает ошибку Короче, пример давай. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:24 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
skyANAА был прецедент? Не знаю... Наверное нет. Но и где гарантии того, что формат Json не изменится ? Petro123покажи их. Получается, что список может быть jArray, а может быть и jObject. Можно сериализовать разными способами, видимо, зависит от языка, на котором сериализуется объект. Код: javascript 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:27 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Я со всем согласен, но: 1. Ты можешь дать ссылку, где написано, что объекты всегда будут сериализовываться строго в текущий Json ? 2. Вопрос в общем то - как изменить стандартную сериализацию ? А правильно это или нет - это другая тема. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:31 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_B1. Ты можешь дать ссылку, где написано, что объекты всегда будут сериализовываться строго в текущий Json ?Расшифруй понятие "текущий json", а то я что-то не сталкивался Valery_B2. Вопрос в общем то - как изменить стандартную сериализацию ? А правильно это или нет - это другая тема.я так и не понял, что тебе нужно - свой сериализатор или свой десериализатор. Из твоих слов следует, что сериализация тебе неподконтрольна и ты вообще не понимаешь, в каком формате тебе придет JSON, следовательно вопрос - а как ты собираешься писать для него десериализатор? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:39 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BМожно сериализовать разными способами, видимо, зависит от языка, на котором сериализуется объект. Код: javascript 1. 2. 3. 4. 5. 6. 7.
Это разные объекты, в первом случае массив, во втором случае объект со свойством Items ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:40 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
.. если такой цирк с сериализаторами, то тогда принимать как строку, а потом парсить её под "текущий json" (если получится) ... что еще не меньший цирк ... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:46 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
carrotik.. если такой цирк с сериализаторами, то тогда принимать как строку, а потом парсить её под "текущий json" (если получится) ... что еще не меньший цирк ...+1 ))) Либо выжигать цирк каленым железом. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:56 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Shocker.ProРасшифруй понятие "текущий json", а то я что-то не сталкивался Текущий json - это такой текст, из которого получается объект. Если какой либо сериализатор (в будущем), найдёт список List<string> в объектре и добавит "Items":[..]", то он не будет сериализовыватся в "текущем json". Valery_Bя так и не понял, что тебе нужно - свой сериализатор или свой десериализатор. Я хочу, что бы параметр метода(объект) сериализовывался мной, а не автоматически. Пусть даже в тоже самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:56 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BПолучается, что список может быть jArray, а может быть и jObject. Можно сериализовать разными способами, видимо, зависит от языка, на котором сериализуется объект. Код: javascript 1. 2. 3. 4. 5. 6. 7.
Передай в урл без json. Рано тебе api делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 14:57 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 15:04 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Shocker.ProЭто разные объекты, в первом случае массив, во втором случае объект со свойством Items Создай аналог класса на разных языках и посмотри, какой Json они сгенерируют. Код: c# 1. 2. 3. 4. 5. 6.
Он у всех будет разный, пример я давал. Если это зависит от ЯП, то где гарантия он не изменится в ASP.NET от версии к версии? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 15:05 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Petro123В частности приходит ошибка при { вместо [. В моём случае это не ошибка, а зависит от сериализатора/десириализатора. Я хочу, что бы это было это было написано руками, а не автоматически. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 15:10 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BPetro123В частности приходит ошибка при { вместо [. В моём случае это не ошибка, а зависит от сериализатора/десириализатора. Я хочу, что бы это было это было написано руками, а не автоматически. ЭТО руками это что? Если клиент может быть ЛЮБОЙ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 15:14 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BВ моём случае это не ошибкая там исправлял у себя эту ситуацию руками. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 15:16 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_B, ..на том же JS c разными библиотеками/фрейморками JSON.stringify(obj) может выдать разные результаты из-под knockout и vue .. Но на то и кодер на клиентской стороне, чтобы отформатировать JSON под требование API, а не наоборот ... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 15:16 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BНе знаю... Наверное нет. Но и где гарантии того, что формат Json не изменится ? Где, где, JSON стандартизован: http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 15:24 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
ТС. JSON с фигурными обзови каноническим форматом post /set-user-infо и опиши в документации. JSON c квадратными скобками обзови платным форматом и конвертируй на входе. Всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 15:24 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
carrotikValery_B, ..на том же JS c разными библиотеками/фрейморками JSON.stringify(obj) может выдать разные результаты из-под knockout и vue .. Но на то и кодер на клиентской стороне, чтобы отформатировать JSON под требование API, а не наоборот ... Всё верно. Но если в JS возможен разный Json, то где нибудь написано, что такое не возможно в ASP NET ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 15:28 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
skyANAГде, где, JSON стандартизован: http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf Json да, стандартизирован. Только ты не совсем правильно понял. Я говорю о том, что объекты могут быть сериализованы по разному. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 15:34 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_B, Типо ты хотел без валидации обойтись принимая строку отовсюду и из свалки итернета. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 15:42 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Ещё пример. Класс Datatable. Можно де/сериализовать так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
И так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Как указать, какой из этих json я жду в методе контроллера, который принимает Datatable ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 15:43 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BskyANAГде, где, JSON стандартизован: http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf Json да, стандартизирован. Только ты не совсем правильно понял. Я говорю о том, что объекты могут быть сериализованы по разному. Ты либо определи требования (контракт), либо пиши свой IModelBinder, либо свои JavaScriptConverter (JsonConverter). Код как написан, так и работает. И так и будет работать. Никакой магии. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 15:44 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BЕщё пример. Класс Datatable. Можно де/сериализовать так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
И так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Как указать, какой из этих json я жду в методе контроллера, который принимает Datatable ? Ты об этом должен позаботиться: описать спецификацию, ручками, или Swagger какой использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 15:46 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BКак указатьпереходи в soap. Там ты клиенты по урл скачают фоормат))) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 15:49 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_Bjson я жду в методевопрос другой - с какой коллекцией ты СМОЖЕШЬ работать на бэкенде? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 15:51 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
skyANAТы либо определи требования (контракт), либо пиши свой IModelBinder, либо свои JavaScriptConverter (JsonConverter). По ссылке на IModelBinder я не понял, это и есть свой сериализатор, который я хочу ? Если да, то можешь дать мини пример, как им пользоваться ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 15:54 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_Bсвой сериализатора ты его всем клиентам поставишь? И на java? Или как? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 16:01 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BskyANAТы либо определи требования (контракт), либо пиши свой IModelBinder, либо свои JavaScriptConverter (JsonConverter). По ссылке на IModelBinder я не понял, это и есть свой сериализатор, который я хочу ? Если да, то можешь дать мини пример, как им пользоваться ? По ссылке интерфейс, который необходимо реализовать, используя десериализацию какую хочется. В любом учебнике по ASP.NET MVC расписано про привязку моделей и ModelBinder. Мини пример: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 16:27 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Petro123а ты его всем клиентам поставишь? И на java? Или как? Только на своём сервере. Можно в очередной раз перефразировать вопрос - я хочу принимать объект в своём строгом формате Json и заставить всех присылать именно в нём. т.е. Код: c# 1. 2.
А Json, как из примера выше. Как это сделать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 16:29 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BМожно в очередной раз перефразировать вопрос - я хочу принимать объект в своём строгом формате Json и заставить всех присылать именно в нём.заставить как? Во время эксплуатации? Выдавая ошибку при валидации что формат не соответствует. Ты же лет на 5 прогу пишешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 16:36 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_B, Ну а не заставляя, ВТИХУЮ конвертировать или ручной десериализатор подгонять под твой формат. По моему это очевидно. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 16:54 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BМожно в очередной раз перефразировать вопрос - я хочу принимать объект в своём строгом формате Json и заставить всех присылать именно в нём.тогда зачем тебе свой сериализатор? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 16:55 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BPetro123а ты его всем клиентам поставишь? И на java? Или как? Только на своём сервере. Можно в очередной раз перефразировать вопрос - я хочу принимать объект в своём строгом формате Json и заставить всех присылать именно в нём. т.е. Код: c# 1. 2.
А Json, как из примера выше. Как это сделать ? ..вам уже сказали в разных вариантах: принимать строку ...через Context или напрямую Request(string BadJson) ... а потом уже в экшене парсить его на предмет "А где тут истинный JSON внутри этого дурацкого объекта" ... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 17:09 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Shocker.Proтогда зачем тебе свой сериализатор? Ну, например что бы метод контроллера Код: c# 1. 2.
Принимал объект DataTable(в данном случае) созданный из этого Json Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
А для других классов Json определённый мной, а не сериализатором C#. Причины я уже называл. Ладно, попробую как написал skyANA. Хотя я не совсем понял, куда встраивать этот класс. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 17:10 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BПринимал объект DataTable(в данном случае) созданный из этого JsonИ зачем? Тут два этапа: 1) Принять JSON и десериализовать его в объект, СООТВЕТСТВУЮЩИЙ принятому JSON-у (стандартным десериализатором, заодно это и провалидирует пришедшие данные) 2) Замаппить полученный объект на DataTable (например с помощью автомаппера или вручную, если есть желание) А писать свой десериализатор - глупость. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 17:17 |
|
Как сериализовать объект из текста Json ?
|
|||
---|---|---|---|
#18+
Valery_BЛадно, попробую как написал skyANA. Хотя я не совсем понял, куда встраивать этот класс. Гугл в помощь... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2019, 18:14 |
|
|
start [/forum/topic.php?all=1&fid=18&tid=1355012]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
130ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 279ms |
0 / 0 |