Newtonsoft Json序列化程序未使用JsonPropertyAttribute定义的属性名称覆盖

时间:2018-09-14 07:44:32

标签: c# asp.net asp.net-mvc-5 json.net

我有一个像这样的简单类,我想对其进行序列化并以驼峰式表示法发送给客户端。

我已经在C#中声明了该类,以纪念传统的Pascal案例表示法。

我还在每个属性上设置了JsonProperty属性,其名称覆盖如下,

using Newtonsoft.Json;

namespace Code.ViewModels
{
    public class ArticleCategoryListItem
    {
        [JsonProperty(PropertyName = "value")]
        public string Value { get; set; }

        [JsonProperty(PropertyName = "label")]
        public string Label { get; set; }
    }
}

但是,我的客户仍然收到Pascal案例属性名称。

我尝试清除ASP.NET缓存,清理内部版本并重建解决方案并重新启动Visual Studio,但无济于事。发生了什么事?

enter image description here

1 个答案:

答案 0 :(得分:0)

您必须将JsonSerializationSetting设置为 骆驼案ContractResolver = new CamelCasePropertyNamesContractResolver()

并使用像      JsonConvert.SerializeObject(object, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() });