我有域类
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响应具有:“cFeature”:[“自定义功能一”、“”],我也会将cFeature设置为空
但是所有者列表得到正确的值,即使所有者列表中也有空字符串值(不确定这是否是此错误的来源)
因此,条形图对象具有:cFeatures:null
这是Webclient中的错误还是我遗漏了什么?我花了一整天的时间在这上面,但还没有修复。
问题出在龙目岛。Lombok正在生成setter方法:
设置特征
但杰克逊期望塞特:
未找到的setcFeatures,因此cFeatures的值为null。
如果您确保您的POJO具有正确的注释样式,这会很有帮助。例如,使用jsonscheme2pojo。org,选择“Json”作为源代码类型,选择“Jackson 2.x”作为注释样式。这将使问题消失。起初,我也遇到了同样的问题,因为我使用了一个带注释的Gson。