EnableDefaultTyping Java Джексона в Python для сериализации объекта, содержащего тип - PullRequest
0 голосов
/ 10 апреля 2019

Я вижу, что с помощью Java более быстрый метод XMLX / Джексона enableDefaultTyping() можно использовать для сериализации объекта Java, хранящего тип данных.

Существует ли библиотека, которая делает то же самое в Python?FasterXML указывает на https://github.com/antidot/Pyckson,, но, похоже, у него нет этой функции.

В принципе, как я могу создать JSON, который выглядит следующим образом в Python:


{
    "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);

...