首页 > 解决方案 > 将 JSON 序列化从 camelCase 更改为 PascalCase

问题描述

从 Core 2.1 迁移我的项目后。到 2.2。我的剑道小部件有问题。模型中的字段使用 PascalCase 指定,并且 JSON 中从服务器返回的字段名称使用 camelCase。

我在 Startup 中添加了 DefaultContractResolver,但 JSON 仍然在 camelCase 中序列化。这里有什么解决方法吗?


services
  .AddMvc(options => options.EnableEndpointRouting = false).SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
  .AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());

标签: kendo-asp.net-mvcaspnetboilerplate

解决方案


我们在 Syncfusion 中遇到了类似的问题,期望使用 PascalCase。

到目前为止,我们找到的唯一解决方案是创建我们自己的

PascalCasePropertyNamesContractResolver : DefaultContractResolver

其中我们只是覆盖 ResolvePropertyName 以按原样返回密钥。

不幸的是,我们必须在每个 Json-Return 中引用这个 ContractResolver,如下所示:

return Json(new { result = result.Items, count = result.Count }, new JsonSerializerSettings { ContractResolver = new PascalCasePropertyNamesContractResolver () });

如果这里有更好的解决方案:欢迎并提前感谢。


推荐阅读