首页 > 解决方案 > 未知序列化对象到 XML

问题描述

我试图弄清楚是否有可能在没有可用类的情况下将 base 64 编码的序列化对象转换为 XML。我在下面编写了一个示例,其中我创建了一个汽车类,创建了一个汽车对象,将对象序列化并编码为字符串。我注释掉汽车类并尝试解码/反序列化,但显然这会从序列化工具中抛出“ClassNotFoundException”。任何帮助将不胜感激,我对外部库持开放态度。

如何将 base64 编码的序列化对象(下面的“s”)转换为对象的 XML?

public class Main {


    public static void main(String[] args) throws IOException {
//        Car car = new Car("black","honda","accord","I2");
//        byte[] carByte = SerializationUtils.serialize(car);
//        String s = Base64.getEncoder().encodeToString(carByte); // returns text below
        // Created from commented code above
        String s = "rO0ABXNyAAhNYWluJENhcjrcX+tC1QS+AgAETAAFY29sb3J0ABJMamF2YS9sYW5nL1N0cmluZztMAAZlbmdpbmVxAH4AAUwABG1ha2VxAH4AAUwABW1vZGVscQB+AAF4cHQABWJsYWNrdAACSTJ0AAVob25kYXQABmFjY29yZA==";
        System.out.println(s);
        System.out.println(Base64.getDecoder().decode(s));
        //ideally below would print xml
        System.out.println(SerializationUtils.deserialize(Base64.getDecoder().decode(s)).toString());

    }

//    public static class Car implements Serializable {
//        String color;
//        String make;
//        String model;
//        String engine;
//
//        public Car(String color, String make, String model, String engine) {
//            this.color = color;
//            this.make = make;
//            this.model = model;
//            this.engine = engine;
//        }
//
//        public String getColor() {
//            return color;
//        }
//
//        public void setColor(String color) {
//            this.color = color;
//        }
//
//        public String getMake() {
//            return make;
//        }
//
//        public void setMake(String make) {
//            this.make = make;
//        }
//
//        public String getModel() {
//            return model;
//        }
//
//        public void setModel(String model) {
//            this.model = model;
//        }
//
//        public String getEngine() {
//            return engine;
//        }
//
//        public void setEngine(String engine) {
//            this.engine = engine;
//        }
//    }
}

标签: javaxmlserializationbase64

解决方案


推荐阅读