Spring Rest API的返回列表

时间:2018-12-16 16:43:35

标签: java spring spring-boot response httpresponse

我想从Spring rest api返回列表:

@GetMapping("merchant_country")
    public ResponseEntity<?> getMerchantCountry() {
        return ok(Contracts.getSerialversionuid());
    }

我想从这里获取内容:

private Map<String, Object> getCountryNameCodeList() {

        String[] countryCodes = Locale.getISOCountries();
        Map<String, Object> list = new HashMap<>();

        for (String countryCode : countryCodes) {

            Locale obj = new Locale("", countryCode);

            list.put(obj.getDisplayCountry().toString(), obj.getCountry());
        }

        return list;
    }

如何映射结果?

2 个答案:

答案 0 :(得分:2)

当您需要对HTTP响应进行更多控制时(例如,设置HTTP标头,提供不同的状态代码),请使用ResponseEntity

在其他情况下,您只需返回一个POJO(或一个集合),Spring就会为您处理其他所有事情。

class Controller {

    @Autowired
    private Service service;

    @GetMapping("merchant_country")
    public Map<String, Object> getMerchantCountry() {
        return service.getCountryNameCodeList();
    }

}

class Service {

    public Map<String, Object> getCountryNameCodeList() { ... }

}

Locate#getCountry返回String,因此可能是Map<String, String>

答案 1 :(得分:2)

希望这会有所帮助,您必须按照安德鲁的建议创建ResponseEntity

numAxes