![](/img/trans.png)
[英]Spring WebFlux - ServerResponse Jackson Serializer problems
[英]Jackson with Spring WebFlux
Json:
{
"response": {
"count": 3,
"items": [
6651536,
20410167,
40345521
]
}
}
不工作 - FriendsDTO
:
@Jacksonized
@Builder
@Value
public class FriendsDTO {
int count;
@JsonProperty("items")
List<Integer> friends;
}
工作 - FriendsDTO
:
@Jacksonized
@Builder
@Value
public class FriendsDTO {
Response response;
@Jacksonized
@Builder
@Value
public static class Response {
int count;
@JsonProperty("items")
List<Integer> friends;
}
}
WebFluxClient
请求:
FriendsDTO friends = webFluxClient.get()
.uri(config.methodGetFriends(), builder -> {
builder.queryParam("access_token", accessToken);
builder.queryParam("v", config.version());
return builder.build();
})
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(FriendsDTO.class)
.log()
.block();
logger.info(friends.toString());
output WORK: FriendsDTO(response=FriendsDTO.Response(count=3, friends=[6651536, 20410167, 40345521]))
output 不工作: FriendsDTO(count=0, friends=null)
如何在响应视图中摆脱这种误解以成功解析 json?
那是预期的行为
{
name : "name",
description : "description"
}
这可以写成
class <ClassName>{
private String name;
private String description;
}
json 不带有ClassName
。 同样,在您的情况下,单词Response
应该是一个有效的属性,就像我在此示例中定义name
的方式一样。
所以,如果你愿意,这个 class 可以工作
@Jacksonized
@Builder
@Value
public class FriendsDTO {
int count;
@JsonProperty("items")
List<Integer> friends;
}
你 JSON 应该从
{
"response": {
"count": 3,
"items": [
6651536,
20410167,
40345521
]
}
}
至
{
"count": 3,
"items": [
6651536,
20410167,
40345521
]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.