(Java/Python)オブジェクトをxmlにシリアル化して逆シリアル化できるxmlシリアル化ライブラリを探していました。私はJava用にXStreamを使用しています。 XStreamには、Xstreamで生成されたxmlから逆シリアル化するPythonのバージョンがあれば、それは私のためにやったでしょう。 Thriftやその他のライブラリは、データ形式をXMLにすることができない限り動作しません。私はそれを行うことができるライブラリのための提案を探しています。 - ありがとうJavaとPythonのXMLシリアル化ライブラリの相互運用性
答えて
JavaとPythonのオブジェクト自体が非常に異なるので、両方の側で許可されている型などを制限しない限り、これはほとんど不可能です。
その場合は、XMLではないにもかかわらず、優れた相互運用性の形式であるJSONを使用することをお勧めします。
そうしないと、XStream XMLをPythonオブジェクトに読み込むライブラリを簡単に書くことができますが、JavaとPythonの間に似ているものに制限されます。
あなたは、Javaオブジェクトをシリアル化してPythonオブジェクトにデシリアライズする自動化された方法を見つけられる可能性が高いと思います。それらは別のものなので、翻訳したい場合は片方または両方のコードにコードを書く必要があります。
文字列、数字、ブール値などの単純な要素の場合は、ほぼすべての言語に対応する非常に単純な形式のjsonを調べるとよいでしょう。問題にアプローチする別の方法では、Javaオブジェクトを直接使用することができますので、Jythonを、JavaでのPythonの実装を使用することであるかもしれません
json.loads('{"test":false}')
:PythonでJSONオブジェクトをDeserialisingすることと同じくらい簡単です。
XStreamはJavaオブジェクトのシリアライゼーションフレームワークであり、一般的なデータマッピング/バインディングフレームワークではないという問題点があります。これは設計によるものです(XStream FAQを参照してください)。これは、すべての種類のJavaオブジェクトをすぐにシリアライズして逆シリアル化できるという点です。欠点は、結果として得られるXML構造が非常に堅牢であることです。名前を変更することは可能ですが、その他の設定性はあまりありません。
しかし、XStreamだけがJava XML処理ライブラリではありません。 JAXB reference implementationまたはJibXのいずれかをチェックすることをお勧めします。これにより、処理するXMLをより詳細に制御できるようになります。これは、良好な相互運用性を達成するために必要な場合があります。
本当にXMLを使用する必要がありますか?
JavaとPythonの間で構造化データをシリアル化する場合は、Google Protocol Buffersと考えてください。
- 1. WCFとJavaの相互運用性
- 2. OpenCV Pythonインターフェイスとctypesライブラリの相互運用性
- 3. JavaとC++の暗号化の相互運用性
- 4. Hadoopの相互運用性
- 5. JavaライブラリArgs4jとScala 2.10との相互運用
- 6. Service BrokerとWCFの相互運用性
- 7. ScalaとJythonの相互運用性
- 8. .NETとC++の相互運用性
- 9. Windows.Formsとgtk#の相互運用性?
- 10. Delphiと.NETの相互運用性
- 11. boolとC/C++の相互運用性
- 12. OpenDDSとOpenSpliceの相互運用性
- 13. Jacorb/Tao相互運用性
- 14. は、相互運用性
- 15. Pythonのctypesとswigの相互運用性
- 16. COM相互運用性と継承
- 17. 分散相互運用性のサポート
- 18. 相互運用性の問題python2 python3
- 19. .net - Linuxタイムゾーンの相互運用性
- 20. Google Cloud Storageの相互運用性
- 21. iPhone/.NET WCFの相互運用性
- 22. Crypto API .NET RSAの相互運用性
- 23. レルムの画像ストレージの相互運用性Android iOS(Swift/Java)
- 24. GenevaベースのSTS、Java相互運用
- 25. C#とCとの相互運用Javaとの相互運用:どの方が優れていますか?
- 26. .NET WCF - CXF/WSS4J相互運用性
- 27. OpenCL/OpenGL相互運用性テクスチャsegfault
- 28. GL/CL相互運用性:共有テクスチャ
- 29. xbee&xbee pro series 1相互運用性
- 30. gzdecode()とinflate_add()との間のバイナリの相互運用性