Да, вы можете либо вернуть Map<String, Object>
из класса вашего контроллера, либо использовать обобщенный класс c JsonNode
от Джексона.
Примером карты может быть следующий (с помощью Java 11):
@RestController
@RequestMapping("/public")
public class PublicController {
@GetMapping("/data")
public Map<String, Object> returnFoo() {
Map<String, Object> resultFromDatabase = Map.of("name", "duke", "data",
Map.of("id", 1337, "enabled", true));
return resultFromDatabase;
}
}
Результат будет следующим:
curl -v localhost:8080/public/data
{"data":{"id":1337,"enabled":true},"name":"duke"}
Можно также просто вернуть Object
, но тогда вам нужно убедиться, что результат ваша база данных всегда доступна для JSON, иначе вы можете получить исключения:
@GetMapping("/data")
public Object returnFoo() {
Map<String, Object> resultFromDatabase = Map.of("name", "duke", "data",
Map.of("id", 1337, "enabled", true));
return resultFromDatabase;
}