没有可用异常类型的合格 bean
No qualifying bean of type available exception
我正在尝试使用 jackson 反序列化哈希图。我的数据结构是
public class FilterDto {
private Map<String, List<String>> sectorFilter;
public FilterDto() {}
public Map<String, List<String>> getSectorFilter() {
return sectorFilter;
}
public void setSectorFilter(Map<String, List<String>> sectorFilter) {
this.sectorFilter = sectorFilter;
}
}
我的请求正文是
{
"sectorFilter": [
{
"ab": [
"abc",
"cde"
]
}
]
}
当我试图反序列化这个时,我得到了
Cannot deserialize instance of `java.util.Map<java.lang.String,java.util.List<java.lang.String>>` out of START_ARRAY token
所以我尝试使用自定义解串器来查看它是否有效。我创建了一个如下所示的自定义解串器
public class FilterDeserializer extends StdDeserializer<Map<String,List<String>>> {
public FilterDeserializer(StdDeserializer<?> src) {
super(src);
}
@Override
public Map<String,List<String>> deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
}
}
并将其添加到我的 dto
@JsonDeserialize(using = FilterDeserializer.class)
private Map<String, List<String>> sectorFilter;
但现在我得到了
No qualifying bean of type 'com.fasterxml.jackson.databind.deser.std.StdDeserializer<?>' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
知道我怎样才能完成这项工作吗?谢谢
sectorFilter
,如您所示,不是地图,它是 JSON 对象的数组。尝试反序列化为 List<Map<String, List<String>>>
。当然,如果需要,您也可以创建 类 模仿该结构。
我正在尝试使用 jackson 反序列化哈希图。我的数据结构是
public class FilterDto {
private Map<String, List<String>> sectorFilter;
public FilterDto() {}
public Map<String, List<String>> getSectorFilter() {
return sectorFilter;
}
public void setSectorFilter(Map<String, List<String>> sectorFilter) {
this.sectorFilter = sectorFilter;
}
}
我的请求正文是
{
"sectorFilter": [
{
"ab": [
"abc",
"cde"
]
}
]
}
当我试图反序列化这个时,我得到了
Cannot deserialize instance of `java.util.Map<java.lang.String,java.util.List<java.lang.String>>` out of START_ARRAY token
所以我尝试使用自定义解串器来查看它是否有效。我创建了一个如下所示的自定义解串器
public class FilterDeserializer extends StdDeserializer<Map<String,List<String>>> {
public FilterDeserializer(StdDeserializer<?> src) {
super(src);
}
@Override
public Map<String,List<String>> deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
}
}
并将其添加到我的 dto
@JsonDeserialize(using = FilterDeserializer.class)
private Map<String, List<String>> sectorFilter;
但现在我得到了
No qualifying bean of type 'com.fasterxml.jackson.databind.deser.std.StdDeserializer<?>' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
知道我怎样才能完成这项工作吗?谢谢
sectorFilter
,如您所示,不是地图,它是 JSON 对象的数组。尝试反序列化为 List<Map<String, List<String>>>
。当然,如果需要,您也可以创建 类 模仿该结构。