如何在客户端将 Json 数据设置为驼峰式一次

How to set Json data to camelCase once on the client side

如何将序列化的 json 数据转换为驼峰式数据而不是所有属性大写?

在我的视图中,这里是我如何在 Json

中打开 c#
team = @Html.Raw(Json.Encode(Model.Employees));

数据如下:"All of this is Test data by the way"

 team = [
    {
        "UserId": "902c2fe0-fcdf-4ed8-9591-5d8e01300cda",
        "UserName": "buderbits",
        "ID": 719,
        "Email": "erik@builder.com",
        "FName": "Builder",
        "LName": "Bits",
        "Title": "Glaizer",
        "Zip": "10027",
        "Phone": "456-768-9987",
        "AddressLine": "124 street st.",
        "City": "Nyc",
        "StateCD": "NY",
        "Avatar": "/users/RFyEQxDCpEavRfgDA028/qvzlezay.u1l.png",
        "RowNum": 3,
        "Total": 4,
        "IsDirty": false,
        "IsFlaggedForDelete": false,
        "SortOrder": 0
    },
    {
        "UserId": "a9cec535-ac48-4197-b8a0-87702cb14e52",
        "UserName": "stdard",
        "ID": 717,
        "Email": "erik@vinyl.org",
        "FName": "Erik",
        "LName": "Little",
        "Title": "Developer",
        "Zip": "75040",
        "Phone": "123-456-7890",
        "AddressLine": "123 Test Street",
        "City": "Garland",
        "StateCD": "TX",
        "Avatar": "/users/CZmP9uvdTCg8CdEhOAX0/kcm1yg2o.spn.gif",
        "RowNum": 1,
        "Total": 4,
        "IsDirty": false,
        "IsFlaggedForDelete": false,
        "SortOrder": 0
    },
    {
        "UserId": "1a4ef17a-9cd8-42e4-b172-3071e29a222a",
        "UserName": "teammber1",
        "ID": 2744,
        "Email": "erik2@erik.com",
        "FName": "Derick",
        "LName": "Mavrick",
        "Title": "Drafting",
        "Zip": "77702",
        "Phone": "111-111-1111",
        "AddressLine": "123 Teammember ST",
        "City": "Beaumont",
        "StateCD": "TX",
        "Avatar": "/users/rPF9z0a7yLJpp4e1Zb15/os1cmk0r.kkg.jpg",
        "RowNum": 4,
        "Total": 4,
        "IsDirty": false,
        "IsFlaggedForDelete": false,
        "SortOrder": 0
    },
    {
        "UserId": "17fab37f-d978-441c-a30d-8c08a7e6ce9b",
        "UserName": "stoontsoftware",
        "ID": 718,
        "Email": "support@storefront.net",
        "FName": "Mark",
        "LName": "Taylor",
        "Title": "Hosting",
        "Zip": "75070",
        "Phone": "345-432-1153",
        "AddressLine": "123 street dr",
        "City": "McKinney",
        "StateCD": "TX",
        "Avatar": "/users/y5TPPr0HR1GQLxkEhDuj/3bmwy0sk.qoi.png",
        "RowNum": 2,
        "Total": 4,
        "IsDirty": false,
        "IsFlaggedForDelete": false,
        "SortOrder": 0
    }
];

求助?

您可以使用 Newtonsoft 的 json 序列化程序 (Json.net),它允许您在序列化对象时指定格式化程序。

var d = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.Employees, 
        new JsonSerializerSettings
        {
           ContractResolver = new CamelCasePropertyNamesContractResolver()
        }));
console.log(d);

这将为您提供序列化创建的 js object/array 的小写 属性 名称。

您可以在将您的字段发送给客户端之前将您的字段设置为驼峰式大小写,方法是将您的初始查询转换为具有驼峰式字段的动态对象或视图模型。例如,如果原始查询:

var model=db.Records.ToList();

生成您的输出,然后将您的查询修改为:

var model=db.Records.Select(r=>
  new {firstName=r.FirstName,lastName=LastName, etc...).ToList();

要在客户端真正做到 100%,您需要使用 javascript 方法重建 table 对象,该方法将每个对象替换为正确命名的对象。

function NewObject(input){
    input=input||{};
    this.firstName=input.FirstName||'';
    this.lastName=input.LastName||'';
    ...etc.
}

var model=@Model; //your Json data as an object
for(var i=0;i<model.length;i++){
    model[i]=new NewObject(model[i]);
}