今天碰到一个问题。C#调用java服务后序列化转化为实体出现异常。
在网站上显示 部分字段内容为英文变成了小写。
排查后才发现,通过httpclient的方式,调用其他服务的接口后返回字符串全部tolower()。【历史原因无从查证】
盘查了很久发现,在实体中[DataMember(Name="name")] 存在大小写差异。
如:
Json字符串是 {"Name":"name"}
但是实体类中的定义是 [DataMember(Name="name")] public string Name {set;get;}
这样将json字符串转化为实体的时候 就不能正常的序列化,因为转化过程中区分了大小写。
通过这个我也发现,命名规则的重要性,不要随便的修改大小写,因为一些语言(java、C#等)上的差异
或者是程序员本身的编程习惯问题导致一些往往很难发现的问题。