2011-11-22 46 views
2

我有一个java对象,我使用HTTP请求来检索。我怎样才能'序列化'jython的Java数据?如何反序列化jython上的java对象

+0

什么是序列化格式?无论如何,您应该能够引入适当的Java库并使用它们来反序列化您的数据。 – Perception

+0

好吧,我猜你正在使用ObjectOutputStream来序列化。在这种情况下,在你的jython程序中引入ObjectInputStream并使用它来反序列化你的对象。 – Perception

回答

2

我想项目python-javaobj是你在找什么。

另外,你也许可以考虑使用另一个更简单的格式来序列化像JSON这样的对象......?!

+0

谢谢。我特别询问jython的原因是因为我找不到标准的python模块。这正是我所需要的。 – zio

+0

@zio jython是一个完全用Java编写的python实现,其中一个好处是你可以访问python中的所有java库......你只需要输入'java.io as io',然后' myObjOutputStream = ObjectOutputStream(...)'使用jython时使用python库来做到这一点是愚蠢的。如果您使用的是python,那将是一个可以接受的答案,但是由于您使用的是jython,因此您不应该将此列为接受的答案。这不是错误,但它是一个可怕的答案。 Steven D. Majewski有正确的答案。 – searchengine27

+0

我刚才看到,他的回答也是错的。但它更接近正确的答案。它应该是'从org.python.util导入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