重命名Json对象fieldName

本文关键字:fieldName 对象 Json 重命名 | 更新日期: 2023-09-27 17:52:13

我使用MVC c#我有一个对象

public class Person
{
        public int TypeId { get; set; }
        public string Code { get; set; }
}

我有一个代码,返回JSON对象为这个对象,像这样

    return Json(personCodeStore.GetBusinessCodes());

但是当我在客户端收到这个时,我希望能够从

重命名字段名
TypeId to value
Code  to text

我不想使用DataContractSerializer像MVC3 JSON序列化:如何控制属性名称?因为我用的是EF 5。每次我更新模型和。tt文件运行时,它都会覆盖我的更改,并且它还会在我不想要的所有视图上使用这个修改过的属性。

所以有一种方法,我可以重命名这个当我序列化它或一旦我得到客户端使用jquery?

重命名Json对象fieldName

您可以简单地使用LINQ并返回一个投影原始结果的匿名对象:

var businessCodes = personCodeStore.GetBusinessCodes();
return Json(businessCodes.Select(x => new 
{
    value = x.TypeId,
    text = x.Code
}));

现在你会得到一些类似于:

的东西
[
    { "value": 1, text = "text 1" },
    { "value": 2, text = "text 2" },
    { "value": 3, text = "text 3" }
    ...
]