从Spring WebFlux返回Flux <string>返回一个字符串而不是JSON

时间:2018-01-24 11:38:02

标签: spring-boot kotlin spring-webflux

Spring WebFlux的新手,尝试在一个端点中返回字符串数组,并且由于某种原因它返回一个串联字符串而不是JSON数组。

用一些类包装它可以解决问题,但想知道如何实际返回字符串数组?返回例如Array<String>按预期工作

class Wrapper(val data: String) {

@RestController
class Test() {
     @RequestMapping("/wrapped") // Returns valid JSON array: [{"value":"Hello"},{"value":"World"}]
     fun b() = Flux.just(Wrapper("Hello"),Wrapper("World"))
     @RequestMapping("/raw") // Returns not valid JSON with just one concatenated string: HelloWorld
     fun a() = Flux.just("Hello", "World")
}

1 个答案:

答案 0 :(得分:6)

在Twitter https://twitter.com/sdeleuze/status/956136517348610048获得了SébastienDeleuze(Spring框架提交者)的答案

  

当元素类型为String时,处理程序方法应该直接提供格式良好的JSON字符串块,不涉及与Jackson的序列化。