我有兩個應用程序,一個是用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字符串中得到不同的順序,如果你比較對象,你應該能夠知道它們是否相等。
添加回答
舉報
0/150
提交
取消