如何使用JavaScriptSerializer强制camelcase?

Fab*_*cio 7 c# asp.net-mvc asp.net-mvc-4

可能吗?

我有一个这样的课:

public class ABC
{
    [Key]
    [ScriptIgnore]
    public int Id { get; set; }

    public string Name { get; set; }

    public string AnotherField { get; set; }

    [ScriptIgnore]
    public virtual User User { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但我想这样序列化{ "name":"foo", "anotherField":"bar" }而不是 { "Name":"foo", "AnotherField":"bar" }.

这就是我的用法:

return Request.CreateResponse(HttpStatusCode.OK, new JavaScriptSerializer().Serialize(obj));
Run Code Online (Sandbox Code Playgroud)

noz*_*ari -6

您可以使用 Newtonsoft.Json.Serialization 中的驼峰式大小写解析器;在您的 global.asax 上,您在应用程序启动时注册它

using Newtonsoft.Json.Serialization;

protected void Application_Start()
{
     config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
}
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,此代码不适用于 JavaScriptSerializer。 (3认同)