6

我在网上搜索了我的问题但没有成功,所以我在这里发布问题。

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

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

4

3 回答 3

12

我知道这是一篇旧文章,但我认为值得添加对 Json.Net 的引用:

API 参考

Nuget 页面

您可以使用该属性设置每个属性将序列化到和从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"
}"
于 2013-08-19T14:01:58.760 回答
1

帖子http://blog.alexonasp.net/post/2012/04/05/Lowercase-JSON-with-ASPNET-Web-API.aspx完全回答了我的问题。

于 2012-11-05T16:08:12.030 回答
0

这可能不是最好的解决方案,但在类似的情况下,我刚刚返回了一个 json 格式的字符串,它是我想要的格式,而不是使用自动序列化。您也许可以在那里找到其他序列化库,让您可以做您想做的事。

于 2012-11-02T19:58:28.053 回答