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

我有两个应用程序,一个用 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 app 还是 c# app 中。他们通过pk从数据库中获取personDTO,并比较字段json,当结果为fasle时,然后更新。


但是序列化的结果并不相等,我认为这是java和c#的序列化机制不同造成的。


他们都使用equals方法比较输出,然后总是得到false(因为他们的序列化字符串比较值不同)。所以,他们总是更新。问题是,我想要一个类似于 restful 接口的解决方案,它传递 Person 对象并返回一个 json 字符串,所以无论 Java 还是 c# 使用这个服务,它们都会得到相同的序列化输出。


那么,在我将所有 c# 代码迁移到 Java 之前,有多少解决方案可以解决问题?哪一个是最简单的方法?


繁星点点滴滴
浏览 110回答 1
1回答

www说

只需将 json 字符串转换为对象(例如使用 Java 中的 Jackson 库)并比较结果 Java/C# Object。即使您在比较对象时在 json 字符串中得到不同的顺序,您也应该能够知道它们是否相等。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java