Управление именами свойств в сериализованном ASP.Сетевые объекты Ajax
-
02-07-2019 - |
Вопрос
Для начала, я знаю, что в настоящее время существует два "вида" сериализации JSON, встроенных в ASP.Net:вы можете либо использовать класс JavaScriptSerializer для сериализации вашего объекта в JSON, либо новый класс DataContractJsonSerializer для преобразования объекта в JSON.
Если вы используете метод JavaScriptSerializer(), вы должны пометить свой класс как Serializable() - если вы используете метод DataContractJsonSerializer, вы должны пометить свой класс как DataContract(), а свои свойства как DataMembers().
Если вы хотите, вы можете указать атрибут NAME для каждого элемента данных, поэтому, когда свойство сериализуется / десериализуется, оно использует это имя.Для моих целей я считаю это полезным, чтобы сделать JSON не таким "многословным".Например, вместо того, чтобы указывать "userId" в качестве моего свойства (и повторять его во всем моем объекте JSON), я бы хотел просто использовать "u".Меньше данных передается по проводам и т.д.
Два механизма сериализации отображают немного по-разному, и вы можете использовать JavaScriptSerializer только с ASP.Net Методами Web / Script.В этом и заключается моя проблема.
Есть ли эквивалентный способ присвоения имени свойства чему-то другому, строго для целей сериализации / десериализации с использованием обычного JavaScriptSerializer?
Решение
Нет, это не так.
Другие советы
Предполагая, что в UTF-8 вы сохраняете 40 бит по проводу с помощью этого метода, это не стоит потерянного сна.