У меня есть pojo, как показано ниже:
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = @class)
public class Shape {
public final String abc;
public final String xyz;
}
Rest API принимает объект Shape в качестве параметра, при этом я должен передать объект следующим образом:
{ @class = com.test.Shape, abc = "test1", xyz = "test2"}
.
Я хочу, чтобы json передавался как
{ abc = "test1", xyz = "test2"}
По сути, я хочу десериализовать pojo без передачи ключа @class.
Это не сработало. что-нибудь еще, вы можете предложить мне искать?
Извините, что не привел идеальный пример, теперь вы можете прочитать его еще раз. Ниже приводится описание официального веб-сайта, вы также можете прочитать его очень гладко.
Я не уверен, что мой вопрос ясен, немного отредактировал его. Я не хочу, чтобы пользовательский интерфейс проходил "@class=classname". Это решение, похоже, не работает, и URL-адрес, которым вы поделились, не содержит никаких подробностей, связанных с проблемой.
Я точно понимаю, что вы хотите, и я немного протестировал это, пример действительно не проблема. Аннотация @RequestBody сопоставляет тело HttpRequest с объектом передачи или домена, обеспечивая автоматическую десериализацию входящего тела HttpRequest в объект Java. Таким образом, вам не нужно указывать соответствующий класс, например "@class=classname"