我有一个课程如下
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));
}
任何帮助将不胜感激!!!
答案 0 :(得分:1)
您可以使用DataContractJsonSerializer
使用[DataMember(Name = "myOwnName")]
数据注释为您的媒体资源指定不同的名称。或者编写自己的序列化程序。
可以找到示例here。
答案 1 :(得分:0)
在内部,Json方法使用JavaScriptSerializer
类将类序列化为JSON字符串。它不允许您更改属性名称。我想你将不得不推出自己的JSON序列化例程。问题是:你为什么需要那个?