我们使用Java作为后端编程,C#用于应用程序编程。
我们使用json序列化框架(如NewtonJson(C#)和Gson(Java) )与服务器交换信息。
在Java中,程序指南使用的是camelCasing,在这种情况下,用户名应该是userName,但是根据C#指南,当它应该是C#中的UserName时,他们使用PascalCasing。
因此,当在应用程序端或服务器端使用json反序列化和序列化时,它将陷入困境。
因此,我们正在考虑将应用程序侧程序约定更改为camelCase。
还是还有其他办法来解决这个问题呢?或者你的团队是怎么处理这个问题的?
发布于 2017-06-21 03:49:29
这里有多个选项:
“混叠”
任何合适的框架都应该允许您使用注释在JSON表示和实际字段名中使用不同的名称!
例如,使用gson:
public class Example {
@SerializedName("lisp-style-name")
private String someField.... 换句话说:确保所有JSON“字段名”都遵循这样的约定--然后您将独立于底层编程语言。
当然,最大的缺点是必须对每个字段进行注释--甚至在和两边都需要注释。另一方面,上面的内容是非常明确的--仅仅通过查看“数据”类声明就可以理解应该发生的事情。
自定义命名支持
库、gson和NewtonJson都支持策略。因此,您可以通过指示转换字段名,而不是手动进行映射。
有关如何使用gson实现此操作,请参见这里;对于C#,您将得到一个重复的问题。
https://stackoverflow.com/questions/44666505
复制相似问题