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

java和c中的序列化集成解决方案?,java,c#,serialization,Java,C#,Serialization,我有两个应用程序,一个用c构建,另一个用JAVA构建。 它们都有一个compareJsonService和相同的逻辑 逻辑的细节: public void compareJsonService(int id,Person personFromCenter){ PersonDTO person = personRepository.getByPK(id); if(!person.getJson().equals(JsonUtil.serialize(personFromCenter

我有两个应用程序,一个用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));
    }
}
无论在java应用程序还是c应用程序中,personFromCenter对象都是唯一的。 他们通过pk从数据库中获取personDTO,并比较字段json,当结果为fasle时,然后更新

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

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


因此,在我将所有c代码迁移到Java之前,有多少种解决方案?哪一种是最简单的方法?

只需将json字符串转换为一个对象,例如Java中的Jackson库,然后比较结果Java/c对象。
即使比较对象时json字符串中的顺序不同,您也应该能够知道它们是否相等。

它们有什么不同?哪一个似乎正确?还是更正确?@Flydog57序列化后,它们的属性顺序不同。。但这不是重点…@Flydog57它们都正确因此,序列化输出都是正确的。Java是否可以读取C序列化输出,反之亦然?如果是的话,那么问题是什么;它们是等价的。@Flydog57它们都使用equals方法来比较输出,然后总是得到false,因为它们的序列化字符串比较值​​问题是,我想要一个类似restful接口的解决方案,它传递Person对象并返回json字符串,所以无论Java还是c使用这个服务,它们都会得到相同的序列化输出