2011-11-22 8 views
2

私はHTTP要求を使用して取得するJavaオブジェクトを持っています。どうすればjythonのJavaデータを非直列化できますか?jythonでJavaオブジェクトを直列化解除するには

+0

シリアル化フォーマットとは何ですか?いずれにしても、適切なJavaライブラリを取得してデータを逆シリアル化することができます。 – Perception

+0

私はObjectOutputStreamを使用してシリアル化していると思います。その場合、あなたのjythonプログラムでObjectInputStreamを取得し、それを使ってオブジェクトを逆シリアル化します。 – Perception

答えて

2

プロジェクトpython-javaobjはあなたが探しているプロジェクトだと思います。

また、JSON ...のようなオブジェクトをシリアライズするための別の簡単なフォーマットを使用することもできます。

+0

ありがとうございます。なぜ私は標準的なPythonモジュールを見つけることができなかったので、私の理由は、ジャイモンを求めています。これはまさに私が必要とするものです。 – zio

+0

@zio jythonは完全にJavaで書かれたPythonの実装です。その利点の1つは、PythonのすべてのJavaライブラリへのアクセス権があることです。あなたはimport 'java.io as io'と ' myObjOutputStream = ObjectOutputStream(...) 'jythonを使用しているときにPythonライブラリを使用してこれを行うと、ダムです。 Pythonを使用していればそれは受け入れられた答えでしたが、あなたがjythonを使用しているので、これを受け入れられた回答として挙げるべきではありません。これは間違ったperseではなく、その恐ろしい答えです。 Steven D. Majewskiは正しい答えを持っています。 – searchengine27

+0

私はちょうど彼の答えも間違っていた見た。しかし、それは正しい答えにはるかに近い。 'from org.python.util import PythonObjectInputStream' – searchengine27

1

Javaメソッドを呼び出して、Jythonから逆シリアル化します。

InputStreamからObjectInputStreamを作成してから、その上でreadObjectを呼び出す必要があるようです。次のようなものがあります。

import java.io 
jobj = java.io.ObjectInputStream(httpinputstream).readObject() 

this previous questionには既に回答があります。

詳細な回答が必要な場合は、詳細を入力する必要があります。 あなたのHTTPリクエストはどこから届いていますか? HttpURLConnection?

+0

これは正解でなければなりません。 – searchengine27

+0

並べ替え、 'import org.python.util.PythonObjectInputStream' – searchengine27

関連する問題