gpt4 book ai didi

java - 具有继承问题的响应式(Reactive) WebTestClient json 反序列化

转载 作者:行者123 更新时间:2023-12-02 10:52:14 24 4
gpt4 key购买 nike

我有一个返回列表的 API。 json 输出中的每个项目都是从 BaseItem 继承的子类。例如

class ItemA extends BaseItem{
Integer quantity;

@JsonCreator
ItemA(@JsonProperty(value="quantity", required=true) Integer quantity, ...) {
super(...);
this.quantity = quantity;
}
}

class ItemB extends BaseItem {
Boolean enabled;

@JsonCreator
ItemB(@JsonProperty(value="enabled", required=true) Boolean enabled, ...) {
super(...);
this.enabled = enabled;
}
}

webflux api 序列化部分已完成并且运行良好。

我正在关注https://www.baeldung.com/jackson-inheritance并将 @JsonCreator 构造函数添加到我的子类中。但我认为默认情况下这仅适用于 RequestBody 反序列化。

当我尝试使用 webTestClient 编写测试用例时,如果我只编写 webTestClient.get(...).exchange().expectBody(BaseItem.class)...

它不会将项目反序列化到相应的子类(不是子类的实例)。

我能想到的解决方法是读取字符串并使用我定制的反序列化器。但不确定是否还有其他方法可以优雅地实现这一目标。

谢谢

最佳答案

已解决,刚刚找到基类中需要的JsonTypeInfo注解

关于java - 具有继承问题的响应式(Reactive) WebTestClient json 反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52081092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com