如何在MVC4 Web API中自定义JSON序列化名称?

Shu*_*ing 6 asp.net json asp.net-web-api

我在网上搜索了我的问题没有成功,所以我在这里发帖提问.

我正在使用MVC4 Web API向客户端提供JSON数据.因为C#使用Pascal命名约定,所以默认情况下客户端收到的JSON数据也是Pascal命名约定,如何自定义它以返回JSON中的camel命名约定?

另一个问题是如何更改序列化名称?例如,在C#中我有一个名为"Description"的属性,但为了减少数据大小,我想在JSON中将其序列化为"descr",如何实现这一目标?

Oli*_*ver 12

我知道这是一个老帖子,但我认为值得添加对Json.Net的引用:

API参考

Nuget Page

您可以设置每个属性会序列名称,并从使用JsonProperty属性:

public class MyModel
{
    [JsonProperty("myJsonProp")]
    public string MyJsonProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

用法:

//Serialize
var json = Newtonsoft.Json.JsonConvert.SerializeObject(instanceOfMyModel);

//De-serialize
var deserialized = Newtonsoft.Json.JsonConvert.DeSerializeOject<MyModel>(json);
Run Code Online (Sandbox Code Playgroud)

由此产生的Json:

"{
    "myJsonProp" : "value"
}"
Run Code Online (Sandbox Code Playgroud)