Атрибут DisplayName игнорируется во время преобразования json - PullRequest
2 голосов
/ 15 февраля 2012

У меня есть класс, как показано ниже

public class Person
{
    public string Name { get; set; }     
    [DisplayName ("Please Enter Your Age")]       
    public int Age { get; set; }
    public string Sex { get; set; }        
}

Я сериализовал этот объект в Json, используя json() MVC3, но атрибут DisplayName игнорируется. Я получаю JSON как

"*{"Name":"Person Name","**Age**":28,"Sex":"Male"}*" 

На самом деле я ожидал

"*{"Name":"Person Name","**Please Enter Your Age**":28,"Sex":"Male"}*"

Код преобразует объект в JSON

[HttpGet]
public JsonResult JsonTest()
{
    Person person = new Person();
    person.Age = 28;
    person.Name = "Person Name";
    person.Sex = "Male";        
    return (Json(person, JsonRequestBehavior.AllowGet));
}

Буду признателен за любую помощь !!!

Ответы [ 2 ]

1 голос
/ 15 февраля 2012

Вы можете использовать DataContractJsonSerializer для присвоения различных имен вашим свойствам с помощью аннотации данных [DataMember(Name = "myOwnName")].Или напишите свой собственный сериализатор.

Пример можно найти здесь .

0 голосов
/ 15 февраля 2012

Внутренне метод Json использует класс JavaScriptSerializer для сериализации класса в строку JSON.Это не позволяет вам изменять имена свойств.Я полагаю, вам придется развернуть свою собственную процедуру сериализации JSON.Вопрос: зачем тебе это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...