JavaScriptSerializer(). Сериализация: от PascalCase к CamelCase
У меня есть этот объект JavaScript
var options:
{
windowTitle : '....',
windowContentUrl : '....',
windowHeight : 380,
windowWidth : 480
}
И у меня есть этот класс C#
public class JsonDialogViewModel
{
public string WindowTitle { get; set; }
public string WindowContentUrl { get; set; }
public double WindowHeight { get; set; }
public double WindowWidth { get; set; }
}
И вы видите, моя нотация - это PascalCase в C#, а мой Javascript - это CamelCase. Это обычное соглашение.
Я использую JavaScriptSerializer().Serialize для сериализации моего объекта C# и использования его в моем коде Javascript.
Однако я сталкиваюсь с этой проблемой PascalCase для CamelCase, которая не обрабатывается JavaScriptSerializer().Serialize.
Что вы предлагаете обойти этот перевод?
Спасибо
2 ответа
Лучшее решение, которое я мог найти, было иметь метод, который получает объект для сериализации, генерирует Dictionary<string, object>
на основе свойств объекта, а затем применить JavaScriptSerializer.Serialize()
в этот словарь.
Этого было достаточно для того, что мне было нужно.
Может быть, вы можете использовать вместо DataContractJsonSerializer? Вот связанные вопросы с ответом, объясняющим, как его использовать: ASP.NET MVC: Управление сериализацией имен свойств с помощью JsonResult