javajackson的enablefaulttyping在Python中序列化包含typ的对象

2024-03-28 10:15:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我发现使用Java的fasterXML/Jackson的enableDefaultTyping()方法可以序列化存储数据类型的Java对象。你知道吗

在Python中是否有这样做的库?FasterXML指向https://github.com/antidot/Pyckson,但它似乎没有这个特性。你知道吗

基本上,如何在Python中创建如下所示的JSON:


{
    "vehicles": 
    [
        "java.util.ArrayList",
        [
            [
                "org.baeldung.jackson.inheritance.Car",
                {
                    "make": "Mercedes-Benz",
                    "model": "S500",
                    "seatingCapacity": 5,
                    "topSpeed": 250.0
                }
            ],

            [
                "org.baeldung.jackson.inheritance.Truck",
                {
                    "make": "Isuzu",
                    "model": "NQR",
                    "payloadCapacity": 7500.0
                }
            ]
        ]
    ]
}

上面是为Java类创建的

# Java
Car car = new Car("Mercedes-Benz", "S500", 5, 250.0);
Truck truck = new Truck("Isuzu", "NQR", 7500.0);

List<Vehicle> vehicles = new ArrayList<>();
vehicles.add(car);
vehicles.add(truck);

Fleet serializedFleet = new Fleet();
serializedFleet.setVehicles(vehicles);

mapper.enableDefaultTyping():
String jsonDataString = mapper.writeValueAsString(serializedFleet);


Tags: orgnewmakeinheritancejavacarmercedesjackson