com.fasterxml.jackson.databind.JsonMappingException:java.lang.String无法强制转换为java.util.Map

时间:2018-03-19 15:00:02

标签: java serialization objectmapper

我正在使用Jackson库编写自定义序列化。

在序列化期间,我面临错误:

<tr>

所以这是我的序列化(我调用Can't bind to 'target' since it isn't a known property of 'tr'.时调试崩溃时我甚至无法进入此方法):

<tr data-toggle="collapse" [attr.data-target]="'#'+ i" class="clickable">

然后我为此创建一个模块,将其添加到ObjectMapper: 在maven构建过程中难以避免问题。

com.fasterxml.jackson.databind.JsonMappingException: java.lang.String cannot be cast to java.util.Map

我还为我的地图添加了额外的注释:

objectMapper.writeValueAsString(loginInfoJSON);

有人可以建议为什么会这样吗?

修改

public class ItemSerializer extends JsonSerializer<Map<String, Object>> {

    @Override
    public void serialize(Map<String,Object> map, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
        Annotation[] mapAnnotations = map.getClass().getAnnotations();
        for(int i = 0; i < mapAnnotations.length; i++){
            if(mapAnnotations[i].getClass().isInstance(MapPropertiesAnnotation.class)){
                jsonGenerator.writeStartObject();
                for(Map.Entry<String, Object> mapEntry : map.entrySet()){
                    jsonGenerator.writeObjectField(mapEntry.getKey(), mapEntry.getValue());
                }
                jsonGenerator.writeEndObject();
            }
        }
    }
}

0 个答案:

没有答案