c# - 将 C# 对象序列化为 JSON 时如何处理不同的命名约定?

标签 c# javascript asp.net json naming-conventions

我正在使用 ASP.Net 将 C# 中设计的类序列化为 JSON。然后,我的 Javascript 应用程序使用 AJAX 请求这些对象。我现在已经在几个项目上这样做了,但我遇到了一个问题,即 C# 标准命名约定对公共(public)成员使用 PascalCase,而在 Javascript 中,它们通常是驼峰命名。

当我有一些使用驼峰命名法的纯 Javascript 类和一些使用 PascalCase 的混合使用类时,这尤其成为一个问题,因为我最初是用 C# 设计它们的。

其他人是如何处理这类问题的?你只选择其中之一吗?如果是这样,选择哪个更广泛?或者是否有一种聪明的方法来使用 JSON 序列化程序在两种命名约定之间切换?

最佳答案

您可以使用 JSON.net 为您序列化数据,您甚至可以告诉它使用驼峰命名法。 This question问类似的东西。这里有一个代码示例供引用:

Product product = new Product {
    ExpiryDate = new DateTime(2010, 12, 20, 18, 1, 0, DateTimeKind.Utc), Name = "Widget", Price = 9.99m, Sizes = new[] {
        "Small", "Medium", "Large"
    }
};

string json =
JsonConvert.SerializeObject(
    product, 
    Formatting.Indented, 
    new JsonSerializerSettings {
    ContractResolver = new CamelCasePropertyNamesContractResolver()
});

也不要担心 JSON.net 的性能,因为 the performance of it versus native serialization具有可比性(在大多数情况下更好)。

关于c# - 将 C# 对象序列化为 JSON 时如何处理不同的命名约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8482668/

相关文章:

c# - 类型转换盒装字节

c# - 制作接收azure订阅数据的应用程序

javascript - 为什么javascript : on webview lead to a new page?

javascript - 使用 self.location 在新选项卡中打开页面?

html - 字段集内联样式不起作用(IE)

c# - 用于Elasticsearch NEST查询的LINQ表达式

javascript - 如何在 asp.net 和 javascript 中将文本框中键入的项目显示到另一个文本框或 div 中?

javascript - 如何使用 Rowspan 属性突出显示带有 TH 和 TD 标签的行?

ASP.Net 嵌套转发器逻辑 hell

asp.net - Response.Redirect 使用 POST 而不是 Get?