我在网上搜索了我的问题但没有成功,所以我在这里发布问题。
我正在使用 MVC4 Web API 向客户端提供 JSON 数据。因为 C# 使用 Pascal 命名约定,所以默认情况下客户端收到的 JSON 数据也是 Pascal 命名约定,我如何自定义它以返回 JSON 中的骆驼命名约定?
另一个问题是如何更改序列化名称?例如,在 C# 中我有一个名为“Description”的属性,但为了减少数据大小,我想在 JSON 中将其序列化为“descr”,如何实现呢?
我在网上搜索了我的问题但没有成功,所以我在这里发布问题。
我正在使用 MVC4 Web API 向客户端提供 JSON 数据。因为 C# 使用 Pascal 命名约定,所以默认情况下客户端收到的 JSON 数据也是 Pascal 命名约定,我如何自定义它以返回 JSON 中的骆驼命名约定?
另一个问题是如何更改序列化名称?例如,在 C# 中我有一个名为“Description”的属性,但为了减少数据大小,我想在 JSON 中将其序列化为“descr”,如何实现呢?
我知道这是一篇旧文章,但我认为值得添加对 Json.Net 的引用:
您可以使用该属性设置每个属性将序列化到和从JsonProperty
序列化的名称:
public class MyModel
{
[JsonProperty("myJsonProp")]
public string MyJsonProperty { get; set; }
}
用法:
//Serialize
var json = Newtonsoft.Json.JsonConvert.SerializeObject(instanceOfMyModel);
//De-serialize
var deserialized = Newtonsoft.Json.JsonConvert.DeSerializeOject<MyModel>(json);
生成的 Json:
"{
"myJsonProp" : "value"
}"
这可能不是最好的解决方案,但在类似的情况下,我刚刚返回了一个 json 格式的字符串,它是我想要的格式,而不是使用自动序列化。您也许可以在那里找到其他序列化库,让您可以做您想做的事。