【问题标题】:Change JSON serialization from camelCase to PascalCase [duplicate]将 JSON 序列化从 camelCase 更改为 PascalCase [重复]
【发布时间】:2019-03-29 11:11:27
【问题描述】:

从 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-mvc aspnetboilerplate


    【解决方案1】:

    我们在 Syncfusion 中遇到了类似的问题,需要 PascalCase。

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

    PascalCasePropertyNamesContractResolver : DefaultContractResolver
    

    我们只是重写 ResolvePropertyName 以按原样返回键。

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

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

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

    【讨论】:

    • “不幸的是,我们必须在每个 Json-Return 中引用这个 ContractResolver,就像这样”这可能有效:JsonConvert.DefaultSettings = new JsonSerializerSettings { ContractResolver = new PascalCasePropertyNamesContractResolver () }(来自this answer
    • 这是基于此答案的code
    猜你喜欢
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    • 2023-03-31
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    相关资源
    最近更新 更多