Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果在C语言中使用camelCasing而不是PascalCasing来表示方法和成员变量,情况会有多糟#_Java_C#_Json - Fatal编程技术网

Java 如果在C语言中使用camelCasing而不是PascalCasing来表示方法和成员变量,情况会有多糟#

Java 如果在C语言中使用camelCasing而不是PascalCasing来表示方法和成员变量,情况会有多糟#,java,c#,json,Java,C#,Json,我们使用Java进行后端编程,使用C#进行应用程序编程 我们经常使用诸如NewtonJson(C#)和Gson(Java)之类的json序列化框架与服务器交换信息 在Java世界中,节目指南使用的是在这种情况下,用户名应该是userName,但这取决于他们在C#中何时应该是userName 因此,当在应用程序端或服务器端使用json反序列化和序列化时,会出现问题 因此,我们正在考虑将应用程序端程序惯例更改为camelCase 还是有其他方法可以解决这个问题?或者您的团队如何处理此问题?这里有多个

我们使用Java进行后端编程,使用C#进行应用程序编程

我们经常使用诸如NewtonJson(C#)和Gson(Java)之类的json序列化框架与服务器交换信息

在Java世界中,节目指南使用的是在这种情况下,用户名应该是
userName
,但这取决于他们在C#中何时应该是
userName

因此,当在应用程序端或服务器端使用json反序列化和序列化时,会出现问题

因此,我们正在考虑将应用程序端程序惯例更改为camelCase


还是有其他方法可以解决这个问题?或者您的团队如何处理此问题?

这里有多个选项:

“别名” 任何合适的框架都应该允许您使用注释在JSON表示和实际字段名中使用不同的名称

以gson为例:

public class Example {
  @SerializedName("lisp-style-name")
  private String someField.... 
换句话说:确保所有JSON“字段名”都遵循这样的约定——这样您就独立于底层编程语言

当然,最大的缺点是必须对每个字段进行注释,甚至可能在两侧都进行注释。另一方面,上面的内容非常明确——您只需查看“数据”类声明,就可以理解应该发生什么

自定义命名支持 gson和NewtonJson库都支持策略。因此,您可以指示框架转换字段名,而不是手动进行映射


请参阅,了解如何使用gson实现这一点;对于C#,您得到了一个重复的问题。

根据我的经验,您可以使用带有dotnet命名约定(属性的PascalCase)的C#代码,但要公开Web API,您可以配置json序列化程序以返回camelCase中的所有属性名称;是否糟糕取决于建筑师的观点,因此,贵公司是否有设计指南?@GhostCat谢谢,我的英语很差,很高兴知道我可以清楚地描述问题:D其他建议很蹩脚,这很难看,Newtonsoft让你可以设置一个策略来屏蔽,而不是手动尝试和指定,在手机上编写好的答案并不容易;我已经进一步强化了我的答案,希望它现在足够好,至少可以撤销否决票(不确定是你还是@JerryGoyal)