Ответ @Patrick Adler абсолютно правильный.Вы можете использовать карту в качестве параметра метода.Два важных дополнения: Map соответствует JSON Object, поэтому, когда JSON-объект передается в ваш метод Spring (по умолчанию используется Jackson), он преобразует его в map, поэтому дополнительный код не требуется.Также, чтобы быть уверенным, что вы можете добавить к своей аннотации, что ожидаете получить ввод JSON: измените строку
@PostMapping(value = "/lookup")
на
@PostMapping(value = "/lookup", headers = "Accept=application/json")
И, наконец, введенный вами ввод не являетсядопустимый одиночный объект JSON.Это 3 отдельных объекта JSON.Так что вы ожидаете массив JSON, содержащий объекты JSON, или один объект JSON.Если вы ожидаете JSON Array, то вместо параметра
Map<String, Object>
в вашем методе используйте
List<Map<String, Object>>
, поэтому ваше решение должно выглядеть либо
@PostMapping(value = "/lookup", headers = "Accept=application/json")
public ResponseEntity<AppResponse> getLookup(@RequestBody Map<String, Object> lookupRequestObject) {
// THIS METHOD KNOWS WHICH FIELD TO USE
// FURTHER LOGIC WOULD BE HERE.
return ResponseEntity.ok(response);
}
, либо таким же, но с параметром
List<Map<String, Object>>
вместо просто карты