zoukankan      html  css  js  c++  java
  • Spring项目中使用jackson序列化key为对象Map

    1.注入ObjectMapper
    2.注册类HistoricTaskInstance的序列化和反序列化类HistoricTaskInstanceKeySerializer,HistoricTaskInstanceKeyDeSerializer
    3.将新的Modeule注册到ObjectMapper中。
    class A{
       //1.注入ObjectMapper,注意这个ObjectMapper是spring全局的。 @Autowired
    private ObjectMapper objectMapper; public void setKeyProcessor(){    
        SimpleModule sm = new SimpleModule();
        //注册序列化,反序列化类。
        sm.addKeySerializer(HistoricTaskInstance.class,new HistoricTaskInstanceKeySerializer());
        sm.addKeyDeserializer(HistoricTaskInstance.class,new HistoricTaskInstanceKeyDeSerializer());
        //注册到ObjectMapper中。
        objectMapper.registerModule(sm);
     } 
    }

    static class HistoricTaskInstanceKeySerializer extends JsonSerializer<HistoricTaskInstance> {
    private final ObjectMapper objectMapper = new ObjectMapper();
    @Override
    public void serialize(HistoricTaskInstance historicTaskInstance, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
    StringWriter writer = new StringWriter();
    objectMapper.writeValue(writer, historicTaskInstance);
    jsonGenerator.writeFieldName(writer.toString());
    }
    }


    static class SimpleObjectKeyDeSerializer extends KeyDeserializer {
    private final ObjectMapper objectMapper = new ObjectMapper();
    @Override
    public HistoricTaskInstance deserializeKey(String key, DeserializationContext deserializationContext) throws IOException {
    return objectMapper.readValue(key, HistoricTaskInstance.class);
    }
    }

    class HistoricTaskInstance{
      private String name;
    private String address;
    }
     
  • 相关阅读:
    Pytorch使用tensorboardX实现loss曲线可视化。超详细!!!
    numpy安装失败:numpy和cv2的版本不一样吧 pip安装/卸载
    问题解决:RuntimeError: CUDA out of memory.(....; 5.83 GiB reserved in total by PyTorch)
    前端刷题网站
    vscode如何使用ssh连接远程linux
    marginnote使用
    前端知识点
    HTTP状态码
    内置对象总结
    微信小程序
  • 原文地址:https://www.cnblogs.com/luoluoshidafu/p/10979018.html
Copyright © 2011-2022 走看看