如何使用Spring Boot返回一组对象?

我做了一个教训有关Spring

Boot,它完美的作品。但是,如果我想返回一组对象怎么办?我试着做这个,但它不工作。如何正确执行?

@RequestMapping("/greeting")

public Greeting greeting(@RequestParam(value="name", defaultValue = "World") String name) {

return new Greeting(counter.incrementAndGet(),

String.format(template, name));

}

@RequestMapping(value = "/greeting", method = RequestMethod.GET, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)

public @ResponseBody List<Greeting> greeting() {

Greeting greeting1 = new Greeting(1, "One");

Greeting greeting2 = new Greeting(2, "Two");

List<Greeting> list = new ArrayList<>();

list.add(greeting1);

list.add(greeting2);

return list;

}

回答:

如果将原始方法与新方法(带有List)进行比较,则会发现一些差异。

首先,在@RequestMapping注释中,您现在正在使用属性consumesproducesproduces在这里不是问题,因为您生成的响应应该是JSON。

您没有消耗任何东西,因此您应该放弃consumes

@RequestMapping(value = "/greeting", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)

public @ResponseBody

List<Greeting> greeting() {

Greeting greeting1 = new Greeting(1, "One");

Greeting greeting2 = new Greeting(2, "Two");

List<Greeting> list = new ArrayList<>();

list.add(greeting1);

list.add(greeting2);

return list;

}

作为旁注,您可能还会注意到您使用了@ResponseBody注释。将其放在此处不会引起任何错误,但不是必须的,因为如果您正确地遵循了Spring教程,则应该使用注释控制器,@RestController并这样做,您已经告诉Spring它将使用响应主体。

以上是 如何使用Spring Boot返回一组对象? 的全部内容, 来源链接: utcz.com/qa/431373.html

回到顶部