没关系,我创建了一个自定义序列化程序和一个自定义类型:
@JsonSerialize(using = PreserializedMapSerializer.class)
class PreserializedMap extends HashMap<String,String>{
}
并预序列化对象:
PreserializedMap map = new PreserializedMap();
...
map.put("device",objectMapper.writeValueAsString(device));
然后序列化集合:
objectMapper.writeValueAsString(map);
序列化器是:
public static class PreserializedMapSerializer extends JsonSerializer<PreserializedMap> {
@Override
public void serialize(PreserializedMap value, JsonGenerator generator,
SerializerProvider provider) throws IOException,
JsonProcessingException {
generator.writeStartObject();
for(Entry<String,String> entry : value.entrySet()){
generator.writeObjectFieldStart(entry.getKey());
generator.writeRaw(entry.getValue().substring(1, entry.getValue().length()-1));
generator.writeEndObject();
}
generator.writeEndObject();
}
}