为了账号安全,请及时绑定邮箱和手机立即绑定

Java 和 c# 中的序列化集成解决方案?

Java 和 c# 中的序列化集成解决方案?

千万里不及你 2022-08-03 16:05:41
我有两个应用程序,一个是用c#构建的,另一个是用JAVA构建的。它们都有一个“compareJsonService”,并且逻辑相同。逻辑细节:public void compareJsonService(int id,Person personFromCenter){    PersonDTO person = personRepository.getByPK(id);    if(!person.getJson().equals(JsonUtil.serialize(personFromCenter)){        personRepository.updatePerson(convertPersonToDTO(personFromCenter,person));    }}对象 personFromCenter 是唯一的,无论是在 java 应用还是 c# 应用中。他们通过pk从数据库中获取personDTO,并比较字段json,当结果为fasle时,然后更新。但是序列化的结果并不相等,我认为这是由java和c#的序列化机制不同引起的。他们都使用equals方法来比较输出,然后总是得到false(因为他们的序列化字符串比较值不同),所以,他们总是更新。问题是,我想要一个解决方案,比如一个restful接口,它传递Person对象并返回一个json String,所以无论Java还是c#使用此服务,它们都会获得相同的序列化输出。那么,在我把所有的c#代码迁移到Java之前,有多少解决方案可以解决问题呢?哪一个是最简单的方法?
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

只需将 json 字符串转换为对象(例如,使用 Java 中的 Jackson 库)并比较结果 Java/C# Object 即可。即使您在json字符串中得到不同的顺序,如果你比较对象,你应该能够知道它们是否相等。


查看完整回答
反对 回复 2022-08-03
  • 1 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号