2011-06-30 6 views
2

Webサービスからデータを取得しました。しかし、Webサービスのリクエストは、C#クラスDataTableのシリアル化されたインスタンスです。それをJavaクラスに変換する能力はありますか?C#DataTableのシリアル化されたインスタンスをJavaに変換する

のjava.sql.ResultSetあなたがC#で欲しいものにかなり近いです

オブジェクト:

おかげ

+0

[this](http://stackoverflow.com/questions/1340283/c-datatable-equivalent-in-java)のリンクをご覧ください。これが助けてくれるといいなあ –

+0

ありがとうございます。つまり、受け取ったC#の直列化オブジェクトをJavaオブジェクトのインスタンスに変換することができますか? – stemm

答えて

5

は(私は、サーバーがデフォルトの.NETシリアライザを使用していますと仮定しています。)

.NETとJavaシリアライザ、互換性がありません。

C#サーバーをJavaクライアントに接続するには、両方のプラットフォームで互換性のあるシリアル化ライブラリを使用する必要があります。 1つの例は、WOXthis answer、同様の質問です。

+0

ありがとうございました。私はサーバにアクセスすることができないので、WOXにパッチを当てることはできません。だから、それは、Javaオブジェクトに返信を変換する方法がないことを意味ですか? – stemm

+1

サーバーに接続してJavaクライアントのオブジェクトを変換するクライアントで.NETプロキシアプリケーションを実行できます。 .NETのデフォルトのシリアル化フォーマットは公開されていないようですので、実用のためにJavaで解析するのは良い解決策ではないでしょう。 – Tamschi

0

あなたは

コードを使用することができます。

何か

ようなコード:

文S = conn.createStatement()。 ResultSet rs = s.executeQuery( "select * from generic_table"); ResultSetMetaData md = rs.getMetaData();あなたは、JavaにC#クラスをデシリアライズすることはできませんので

+0

ありがとう、しかし、私の問題は、Webサービスの要求は、シリアル化されたC#クラスDataTableです。どうすればJavaクラスに変換できますか? – stemm

0

他の回答で指摘されているように、wox(https://github.com/codelion/wox)のようなクロスプラットフォームのシリアライゼーションライブラリを使用する必要があります。 Woxでは、Javaでオブジェクトをシリアル化し、C#で逆シリアル化することができます(逆も同様です)。

関連する問題