JavaScriptSerializer (). Сериализация: от PascalCase к CamelCase - PullRequest
11 голосов
/ 22 марта 2011

У меня есть этот объект 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 (). Сериализация для сериализации моего объекта C # и использования его в моем коде Javascript.

Однако я сталкиваюсь с этой проблемой PascalCase для CamelCase, которая не обрабатывается JavaScriptSerializer (). Serialize.

Что вы предлагаете обойти этим переводом?

Спасибо

Ответы [ 2 ]

2 голосов
/ 15 декабря 2011

Лучшее решение, которое я мог найти, это иметь метод, который получает сериализованный объект, генерирует Dictionary<string, object> на основе свойств объекта и затем применяет JavaScriptSerializer.Serialize() к этому словарю.
Этого было достаточно для того, что мне было нужно.

1 голос
/ 09 мая 2011

Может быть, вместо этого вы можете использовать DataContractJsonSerializer ? Вот связанные вопросы с ответом, объясняющим, как его использовать: ASP.NET MVC: Управление сериализацией имен свойств с помощью JsonResult

...