json转换时忽略DisplayName属性

时间:2012-02-15 07:08:38

标签: json asp.net-mvc-3

我有一个课程如下

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

我使用MVC3的json()将此对象序列化为Json,但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 个答案:

答案 0 :(得分:1)

您可以使用DataContractJsonSerializer使用[DataMember(Name = "myOwnName")]数据注释为您的媒体资源指定不同的名称。或者编写自己的序列化程序。

可以找到示例here

答案 1 :(得分:0)

在内部,Json方法使用JavaScriptSerializer类将类序列化为JSON字符串。它不允许您更改属性名称。我想你将不得不推出自己的JSON序列化例程。问题是:你为什么需要那个?