栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

让Jackson在所有地方都使用自定义解串器(不是我的类型)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

让Jackson在所有地方都使用自定义解串器(不是我的类型)

LongJsonDeserializer deserializer = new LongJsonDeserializer();SimpleModule module =  new SimpleModule("LongDeserializerModule",      new Version(1, 0, 0, null, null, null));module.addDeserializer(Long.class, deserializer);ObjectMapper mapper = new ObjectMapper();mapper.registerModule(module);

这是完整的演示应用程序。这适用于最新版本的Jackson,也可能适用于Jackson版本回到1.7。

import java.io.IOException;import org.prehaus.jackson.JsonParser;import org.prehaus.jackson.JsonProcessingException;import org.prehaus.jackson.Version;import org.prehaus.jackson.map.DeserializationContext;import org.prehaus.jackson.map.JsonDeserializer;import org.prehaus.jackson.map.ObjectMapper;import org.prehaus.jackson.map.module.SimpleModule;public class Foo{  public static void main(String[] args) throws Exception  {    TestBean bean = new TestBean();    bean.value = 42L;    ObjectMapper mapper = new ObjectMapper();    String beanJson = mapper.writevalueAsString(bean);    System.out.println(beanJson);    // output: {"value":42}    TestBean beanCopy1 = mapper.readValue(beanJson, TestBean.class);    System.out.println(beanCopy1.value);    // output: 42    SimpleModule module =      new SimpleModule("LongDeserializerModule",          new Version(1, 0, 0, null));    module.addDeserializer(Long.class, new LongJsonDeserializer());    mapper = new ObjectMapper();    mapper.registerModule(module);    TestBean beanCopy2 = mapper.readValue(beanJson, TestBean.class);    System.out.println(beanCopy2.value);    // output: 126  }}class TestBean{  Long value;  public Long getValue() {return value;}  public void setValue(Long value) {this.value = value;}}class LongJsonDeserializer extends JsonDeserializer<Long>{  @Override  public Long deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException  {    Long value = jp.getLongValue();    return value * 3;  }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/616761.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号