在python中解码java对象

时间:2011-11-22 13:09:02

标签: java python json javabeans decoding

是否有可能在python中解码java对象?我知道返回数据的java类的结构。返回的数据标题为“Transfer-Encoding:chunked”

或者我是否需要将返回数据作为xml / json发送?

这是我得到的回应的一个例子; (注意通过粘贴删除一些控制字符)

 -- response --
200 OK
Server:  Apache-Coyote/1.1
Transfer-Encoding:  chunked
Date:  Tue, 22 Nov 2011 13:24:41 GMT
��srjava.util.ArrayListx����a�IsizexpGwXsr,com.blah.blah.data.ClientInfos����8d�LdbNametLjava/lang/String;Ldescriptionq~xptdbname1t Customername1q~tdbname2tCustomername2sq~t

此示例以client,databasename

的格式返回两个客户端

dbname1,customername1

dbname2,customername2

1 个答案:

答案 0 :(得分:-1)

---随着更多细节的出现而编辑---

此HTTP响应的内容是序列化的Java对象。

Java序列化是一个进程,通过该进程,内存中对象被打包到传输友好的字节中,以便被另一个JVM读取。简而言之,您需要阅读序列化格式。假设他们没有添加自定义序列化程序the actual protocol is documented here

其余的只是确保您对数据字段进行合理的Java到Python映射。如果要支持“往返”数据处理,则应将有时丢弃的“java信息”缓存到数据结构的特殊“区域”中,以便序列化回相同的java构造。

---原帖后面---

要么你正在反汇编一个类(这很容易做到,因为Java有一个非常严格的类结构和一个易于反转的字节代码到源代码映射),或者你正在处理数据。

如果它正在处理数据,那么你并不是真的在解码Java,而且做你想做的事情很容易在很大程度上取决于收集有关数据编码方式的知识的能力。由于您提到了“Transfer-Encoding:Chunked”标头,我猜您正在阅读HTTP响应(包含标题)。

由于Web服务的普及,几乎每种语言都有一个库来处理HTTP响应。 Python already has a HTTP client as indicated here