2011-11-22 4 views
2

У меня есть объект java, который я получаю с помощью HTTP-запроса. Как я могу «un-serialize» java-данные в jython?Как я не инициализирую java-объект на jython

+0

Что такое формат сериализации? В любом случае вы сможете использовать соответствующие библиотеки Java и использовать их для десериализации данных. – Perception

+0

Хорошо, я собираюсь предположить, что вы используете ObjectOutputStream для сериализации. В этом случае вытащите ObjectInputStream в свою программу jython и используйте его для десериализации вашего объекта (ов). – Perception

ответ

2

Я думаю, что проект python-javaobj - это то, что вы ищете.

В качестве альтернативы вы могли бы рассмотреть возможность использования другого, более простого формата для сериализации объектов, таких как JSON ...?!

+0

Спасибо. Моя причина специально спросить о jython была в том, что я не смог найти стандартный модуль python. Это делает именно то, что мне нужно. – zio

+0

@zio jython - это реализация на языке python, полностью написанная на Java, и одним из преимуществ является то, что у вас есть доступ ко всем java-библиотекам на вашем питоне ... вам нужно только написать import «java.io as io», myObjOutputStream = ObjectOutputStream (...) 'Использование библиотеки python для этого, когда youre using jython является немым. Это был бы приемлемый ответ, если бы вы использовали python, но поскольку вы используете jython, вы не должны указывать это как принятый ответ. Это не ошибка, но это ужасный ответ. У Стивена Д. Маевски есть правильный ответ. – searchengine27

+0

Я только что видел, его ответ был также неправильным. но его гораздо ближе к правильному ответу. Это должно быть «из org.python.util import PythonObjectInputStream» – searchengine27

1

Вы просто вызываете java-методы для десериализации из Jython.

Похоже, вам нужно создать ObjectInputStream из InputStream, а затем вызвать на нем readObject. Что-то вроде:

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

Вы уже получили ответ на это в this previous question.

Если вы хотите получить более подробный ответ, вам необходимо предоставить подробную информацию. Где находится ваш запрос HTTP? HttpURLConnection?

+0

Это должен быть правильный ответ. – searchengine27

+0

Сортировка, Он должен быть 'import org.python.util.PythonObjectInputStream' – searchengine27

 Смежные вопросы

  • Нет связанных вопросов^_^