Нет единого стандарта, которому должны следовать все фреймворки.Даже Jackson
может делать это по-разному, независимо от того, что пользователь решит использовать.Также Jackson
всегда генерирует valid JSON
, даже когда используется полное имя класса, например "org.baeldung.jackson.inheritance.Car"
или "org.baeldung.jackson.inheritance.Truck"
.Чтобы он работал и был прост в использовании, вы должны уточнить все base types
и subtypes
в:
ТамНет смысла отправлять полное имя class
, потому что клиенты, не являющиеся Java
, в любом случае не распознают их автоматически.Итак, вам нужно создать отображение:
BP
- базовый продукт P1
- продукт 1 P2
- продукт 2 - ...
Вы также должны указать, что, например, каждый объект содержит свойство "type"
, для которого будет установлено одно из приведенного выше списка:
[
{
"type":"P1",
"model":"S500",
"cost":250.0
},
{
"type":"P2",
"model":"NQR",
"capacity":7500.0
}
]
Выше следует предоставить достаточно информации для deserialise
любого payload
.