Гость
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как сериализовать объект из текста Json ? / 25 сообщений из 45, страница 1 из 2
10.04.2019, 13:42
    #39799323
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Есть класс Request и метод контроллера, который принимает этот класс в качестве параметра:
Код: c#
1.
2.
[HttpPost]
public string Request(request Request)


Как я понимаю, класс сериализуется из Json текста, которой в этот метод посылают пользователи.
Дело в том, что стандартный сериализатор сериализует объект не совсем так, как хотелось бы (в частности List<> и Dictonary<>).

Можно как то написать свой сериализатор ?
...
Рейтинг: 0 / 0
10.04.2019, 13:47
    #39799330
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Что-то каша какая-то.
У тебя пользователи не в браузере, а в толстом клиенте на .NET?
...
Рейтинг: 0 / 0
10.04.2019, 13:55
    #39799338
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Valery_BМожно как то написать свой сериализатор ?
Реализовать свой IModelBinder , либо попытаться настроить сериализатор.
...
Рейтинг: 0 / 0
10.04.2019, 14:04
    #39799348
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Valery_B,
Нажми F12 и покажи что отправляют прльзователи в кавычках.
...
Рейтинг: 0 / 0
10.04.2019, 14:05
    #39799351
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Shocker.ProЧто-то каша какая-то.
У тебя пользователи не в браузере, а в толстом клиенте на .NET?
Что то типо.
И не обязательно на .NET

По сути, текст в POST может сделать кто угодно, и как угодно.
Проблема со списками, которые есть в классе Request.

Конечно, можно заставить присылать Json строгом в формате под текущий сериализатор.
Но где гарантия, что со обновлением VisualStudio этот формат не измениться ?
...
Рейтинг: 0 / 0
10.04.2019, 14:06
    #39799352
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Shocker.ProЧто-то каша какая-то.
У тебя пользователи не в браузере, а в толстом клиенте на .NET?присоединяюсь к вопросу)
...
Рейтинг: 0 / 0
10.04.2019, 14:07
    #39799355
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Valery_BПроблема со списками,покажи их.
...
Рейтинг: 0 / 0
10.04.2019, 14:09
    #39799356
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Valery_BПо сути, текст в POST может сделать кто угодно, и как угодно.добро пожаловать в REST.
1. Можно не делать много параметров и передать их в урл без json.
...
Рейтинг: 0 / 0
10.04.2019, 14:11
    #39799358
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Valery_BКонечно, можно заставить присылать Json строгом в формате под текущий сериализатор.
Но где гарантия, что со обновлением VisualStudio этот формат не измениться ?
А был прецедент?
...
Рейтинг: 0 / 0
10.04.2019, 14:24
    #39799366
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Valery_BНо где гарантия, что со обновлением VisualStudio этот формат не измениться ?А причем тут вообще VS? Какое отношение сериализатор к ней имеет?


Как связаны этим две вещи?
Valery_Bстандартный сериализатор сериализует объектValery_BИ не обязательно на .NET
По сути, текст в POST может сделать кто угодно, и как угодно.
Причем тут сериализатор на сервере, если тебе извне непонятно кто непонятно в каком формате присылает JSON.
Вероятно, речь идет о десериализации. Но тут опять же подход непонятен. Ты пишешь АПИ, к нему есть определенные требования к присылаемой информации, если информация приходит в некорректном формате, то клиент получает ошибку

Короче, пример давай.
...
Рейтинг: 0 / 0
10.04.2019, 14:27
    #39799371
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
skyANAА был прецедент?
Не знаю... Наверное нет.
Но и где гарантии того, что формат Json не изменится ?
Petro123покажи их.
Получается, что список может быть jArray, а может быть и jObject.
Можно сериализовать разными способами, видимо, зависит от языка, на котором сериализуется объект.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
Можно так:
 [{"ID":1,"Name":"Vasya"}, {"ID":2,"Name":"Petya"} ]

А можно и так:
{
"Items": [{"ID":1,"Name":"Vasya"}, {"ID":2,"Name":"Petya"}     ]
}
...
Рейтинг: 0 / 0
10.04.2019, 14:31
    #39799375
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Shocker.Pro,

Я со всем согласен, но:
1. Ты можешь дать ссылку, где написано, что объекты всегда будут сериализовываться строго в текущий Json ?
2. Вопрос в общем то - как изменить стандартную сериализацию ? А правильно это или нет - это другая тема.
...
Рейтинг: 0 / 0
10.04.2019, 14:39
    #39799385
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Valery_B1. Ты можешь дать ссылку, где написано, что объекты всегда будут сериализовываться строго в текущий Json ?Расшифруй понятие "текущий json", а то я что-то не сталкивался
Valery_B2. Вопрос в общем то - как изменить стандартную сериализацию ? А правильно это или нет - это другая тема.я так и не понял, что тебе нужно - свой сериализатор или свой десериализатор. Из твоих слов следует, что сериализация тебе неподконтрольна и ты вообще не понимаешь, в каком формате тебе придет JSON, следовательно вопрос - а как ты собираешься писать для него десериализатор?
...
Рейтинг: 0 / 0
10.04.2019, 14:40
    #39799386
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Valery_BМожно сериализовать разными способами, видимо, зависит от языка, на котором сериализуется объект.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
Можно так:
 [{"ID":1,"Name":"Vasya"}, {"ID":2,"Name":"Petya"} ]

А можно и так:
{
"Items": [{"ID":1,"Name":"Vasya"}, {"ID":2,"Name":"Petya"}     ]
}

Это разные объекты, в первом случае массив, во втором случае объект со свойством Items
...
Рейтинг: 0 / 0
10.04.2019, 14:46
    #39799390
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
.. если такой цирк с сериализаторами, то тогда принимать как строку, а потом парсить её под "текущий json" (если получится) ... что еще не меньший цирк ...
...
Рейтинг: 0 / 0
10.04.2019, 14:56
    #39799400
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
carrotik.. если такой цирк с сериализаторами, то тогда принимать как строку, а потом парсить её под "текущий json" (если получится) ... что еще не меньший цирк ...+1
)))
Либо выжигать цирк каленым железом.
...
Рейтинг: 0 / 0
10.04.2019, 14:56
    #39799401
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Shocker.ProРасшифруй понятие "текущий json", а то я что-то не сталкивался
Текущий json - это такой текст, из которого получается объект.
Если какой либо сериализатор (в будущем), найдёт список List<string> в объектре и добавит "Items":[..]", то он не будет сериализовыватся в "текущем json".
Valery_Bя так и не понял, что тебе нужно - свой сериализатор или свой десериализатор.
Я хочу, что бы параметр метода(объект) сериализовывался мной, а не автоматически.
Пусть даже в тоже самое.
...
Рейтинг: 0 / 0
10.04.2019, 14:57
    #39799402
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Valery_BПолучается, что список может быть jArray, а может быть и jObject.
Можно сериализовать разными способами, видимо, зависит от языка, на котором сериализуется объект.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
Можно так:
 [{"ID":1,"Name":"Vasya"}, {"ID":2,"Name":"Petya"} ]

А можно и так:
{
"Items": [{"ID":1,"Name":"Vasya"}, {"ID":2,"Name":"Petya"}     ]
}


Передай в урл без json.
Рано тебе api делать.
...
Рейтинг: 0 / 0
10.04.2019, 15:04
    #39799409
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Валидируй на входе и отфутболивай плохой формат.
Моя тема:
Подскажите валидатор json.
...
Рейтинг: 0 / 0
10.04.2019, 15:05
    #39799411
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Shocker.ProЭто разные объекты, в первом случае массив, во втором случае объект со свойством Items
Создай аналог класса на разных языках и посмотри, какой Json они сгенерируют.
Код: c#
1.
2.
3.
4.
5.
6.
 public class MyUser
    {
        public string FullName { get; set; }
        public string LoginName { get; set; }
        public Dictionary<string, string> Roles { get; private set; }
    }


Он у всех будет разный, пример я давал.
Если это зависит от ЯП, то где гарантия он не изменится в ASP.NET от версии к версии?
...
Рейтинг: 0 / 0
10.04.2019, 15:10
    #39799415
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Petro123В частности приходит ошибка при { вместо [.
В моём случае это не ошибка, а зависит от сериализатора/десириализатора.

Я хочу, что бы это было это было написано руками, а не автоматически.
...
Рейтинг: 0 / 0
10.04.2019, 15:14
    #39799421
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Valery_BPetro123В частности приходит ошибка при { вместо [.
В моём случае это не ошибка, а зависит от сериализатора/десириализатора.

Я хочу, что бы это было это было написано руками, а не автоматически.
ЭТО руками это что?
Если клиент может быть ЛЮБОЙ?
...
Рейтинг: 0 / 0
10.04.2019, 15:16
    #39799423
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Valery_BВ моём случае это не ошибкая там исправлял у себя эту ситуацию руками.
...
Рейтинг: 0 / 0
10.04.2019, 15:16
    #39799424
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Valery_B,

..на том же JS c разными библиотеками/фрейморками JSON.stringify(obj) может выдать разные результаты из-под knockout и vue .. Но на то и кодер на клиентской стороне, чтобы отформатировать JSON под требование API, а не наоборот ...
...
Рейтинг: 0 / 0
10.04.2019, 15:24
    #39799428
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сериализовать объект из текста Json ?
Valery_BНе знаю... Наверное нет.
Но и где гарантии того, что формат Json не изменится ?
Где, где, JSON стандартизован:
http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как сериализовать объект из текста Json ? / 25 сообщений из 45, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]