2012-08-10 26 views
1

我正在一個項目,它是由C#組成的,有一些數據被序列化現在我需要相同的值在Java中序列化。是二進制java序列化的輸出等於c#序列化

那麼,我可以得到應該相當於c#序列化輸出的java序列化輸出。由於c#代碼已經完成,我不能改變閱讀器格式。我需要通過當前在c#中的java發送相同的數據。

那麼,兩者的序列化輸出語言是一樣的。

+0

它們在相同的意義上是相同的。就像你可以用水或二氧化碳滅火一樣,但它們不能互換,也沒有簡單的辦法。即使是沒有物體的小溪也是不相容的。 – 2012-08-10 11:44:53

回答

7

那麼,兩者的序列化輸出語言是一樣的。

當然,如果您使用每個平臺的默認二進制序列化機制,肯定不會。這幾乎是不可思議的,他們可以兼容。

你應該選擇一個平臺中立的序列化格式,如Protocol BuffersThriftYAML,JSON,XML(通過自定義序列化)等

+0

那麼,我可以得到java序列化輸出應該相當於c#序列化輸出。由於c#代碼已經完成,我不能改變閱讀器格式。我需要通過當前在c#中的java發送相同的數據。 – 2012-08-10 12:16:49

+0

@SudikMaharana:基本上,你是塞滿的。你必須對.NET序列化格式進行反向工程,這將是非常可怕的。找到子彈並正確修復它。 – 2012-08-10 12:17:35

+0

閱讀器服務器現在讀取c#格式,我需要通過使用java來傳遞相同的值。是否有可能通過使用上述工具。 – 2012-08-10 12:55:19

3

的二進制序列幾乎總是不一樣的,因爲不同的系列化實現。但是,這就是爲什麼我們有XML或Json以及其他兼容格式,所以無論我們使用哪種技術,我們都可以使用它們。