2011-06-30 17 views
2

我必須從Web服務獲取數據。但是Web服務請求是C#類DataTable的序列化實例。有沒有能力將其轉換爲任何Java類?將C#DataTable的序列化實例轉換爲java

感謝

+0

請看[this](http://stackoverflow.com/questions/1340283/c-datatable-equivalent-in-java)鏈接。我希望這將有所幫助。 –

+0

謝謝。這是否意味着,我可以簡單地將接收到的C#序列化對象轉換爲java對象的實例? – stemm

回答

5

(我假設服務器使用默認的.NET序列化。)

的.NET和Java序列化是不相容的,所以你不能反序列化的C#類到Java。

要將C#服務器連接到Java客戶端,必須在兩個平臺上使用兼容的序列化庫。一個例子是WOX,截至this answer的一個類似的問題。 (這是一個XML序列化程序,所以會有相當大的開銷。)

+0

非常感謝。我沒有訪問服務器,所以我不能用WOX修補它。所以這意味着沒有辦法將它轉換成java對象呢? – stemm

+1

您可以在連接到服務器的客戶端上運行.NET代理應用程序,併爲Java客戶端翻譯對象。 .NET默認的序列化格式似乎不公開,所以它可能不是一個很好的解決方案,可以在Java中進行分析以供生產使用。 – Tamschi

0

你可以使用一個

代碼:

java.sql.ResultSet中

對象,它是非常接近你想要在C#中的東西。

喜歡的東西

代碼:

聲明S = conn.createStatement(); ResultSet rs = s.executeQuery(「select * from generic_table」); ResultSetMetaData md = rs.getMetaData();

+0

謝謝,但我的問題是,Web服務請求是序列化的C#類DataTable。我怎樣才能將它轉換成java類? – stemm

0

正如在其他答案中指出的那樣,您需要使用像wox(https://github.com/codelion/wox)這樣的跨平臺序列化庫。 Wox將允許您使用Java序列化您的對象,並使用C#反序列化它們(反之亦然)。