Spring WebClient在响应正文中将某些字段设置为null时将其设置为null

时间:2018-10-25 08:11:43

标签: spring spring-webflux

我有域课程

import org.springframework.data.mongodb.core.mapping.Document;

import lombok.Data;

@Data
@Document
public class Bar {

    @Id
    private String id;


    private List<String> owners;
    private List<String> cFeatures; 

    private Integer age;
    private String color;

}

我正在使用以下代码来调用API以获取Bar对象中的数据:

import org.springframework.web.reactive.function.client.WebClient;
    Mono<Bar> prop = webClient.get()
                    .uri("/bars/"+id)
                    .header("Authorization", "Bearer " + access_token)
                    .accept(MediaType.APPLICATION_JSON)
                    .retrieve()
                    .bodyToMono(Bar.class).log("find by id")

问题是即使原始JSON响应,我也将cFeatures设置为null 已: “ cFeatures”:[“自定义功能一”,“”]

但是即使所有者列表中的字符串值也为空,所有者列表也会获得正确的值(不确定这是否是此错误的来源)

因此Bar对象具有: cFeatures:null

这是Webclient中的bug还是我缺少什么?我花了整整一整天的时间,但还没有修复。

1 个答案:

答案 0 :(得分:0)

问题出在龙目岛。龙目岛正在生成setter方法:

setCFeatures

但是杰克逊希望有二传手:

找不到的setcFeatures,因此cFeatures的值为空。