我有兩個應用程序,一個用 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 之前,有多少解決方案可以解決問題?哪一個是最簡單的方法?
1 回答

www說
TA貢獻1775條經驗 獲得超8個贊
只需將 json 字符串轉換為對象(例如使用 Java 中的 Jackson 庫)并比較結果 Java/C# Object。即使您在比較對象時在 json 字符串中得到不同的順序,您也應該能夠知道它們是否相等。
添加回答
舉報
0/150
提交
取消