Мне нужно распечатать содержимое сериализованного объекта Java (например, java.io.Serializable POJO, извлеченного из кеша), не зная его класс априори.Как десериализовать объект неизвестного класса
Более конкретно, мне не нужно создавать экземпляр нового объекта с помощью классического ObjectInputStream, мне просто нужно получить простое читаемое человеком представление (желательно JSON) объекта без загрузки его класса в путь к классам.
Другими словами, мне нужно преобразовать байт [] (необработанный сериализованный объект) в строку JSON без переопределения ObjectInputStream.
Класс, который вы десериализируете в своем классе? –
Невозможно десериализовать объект, не имея его класса в пути к классам. Каким будет класс объекта? Если это необходимо, вы должны хранить JSON в кеше, а не сериализованные объекты Java. –
@JBNizet: Это совершенно верно. Тем не менее, я думаю, @tieTYT пытается выяснить контекст вопроса. Возможно, сама причина этого требования заключается в том, что существует некоторый старый файл '.ser', который необходимо проверить, не имея класса (или этой версии класса) в пути к классам. И это потребует совершенно иного подхода, чем преобразование объектов в JSON. –