我正在使用 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/