【发布时间】:2021-08-10 04:37:53
【问题描述】:
我必须调用一个返回此 JSON 输出的 URL
{
"zonesList": [
"zone1",
"zone2",
"zone5",
"zone4"
]
}
我的目标是返回一个带有布尔值的 POJO,例如
zone1: 真 区域 2:真 zone3: false(因为 zone3 不在输出中)
我创建了 2 个这样的 pojo
@Data
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class ZonesList {
public ZoneActiveContentResponseModel zonesList;
}
和
@Data
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class ZoneActiveContentResponseModel {
public Boolean zone1 = false;
public Boolean zone2 = false;
public Boolean zone3 = false;
public Boolean zone4 = false;
public Boolean zone5 = false;
}
我想退回 Mono 但我不知道如何退回它,这就是我现在拥有的
Mono<ZonesList> zoneList = webClient
.get()
.uri(apiPath)
.accept(MediaType.APPLICATION_JSON)
.retrieve().bodyToMono(ZonesList.class)
.onErrorResume(throwable -> {
log.error("Received error response from GET zone fragment Api [{}]", throwable);
ZoneActiveContentResponseModel errorModel = new ZoneActiveContentResponseModel();
// errorModel.setErrors(prepareErrorObject(throwable));
// return Mono.just(errorModel);
return null;
});
所以我的问题是如何操作来自 webclient 的输出并返回一个新对象?
【问题讨论】:
-
是否总是只有这 5 个区域可用?还是说zone6也来了?
-
始终是 5 个区域。如果响应中没有区域,我们必须返回 false
标签: spring spring-boot reactive-programming spring-webflux