论坛首页 Java企业应用论坛

jackson使用

浏览 4364 次
锁定老帖子 主题:jackson使用
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-02-08  
  1.  序列化
    1. ObjectMapper mapper = new ObjectMapper();//可以单例,线程安全
      Object result=new Object();
      mapper.writeValue(response.getWriter(), result);
       
  2. 反序列化
    1. ObjectMapper mapper = new ObjectMapper();
      Module m=mapper.readValue("{text: \"查询统计\" }", Module.class);
      System.out.println(m);
       
  3. 出现 org.codehaus.jackson.JsonParseException: Unexpected character 异常
    1. 属性名称没有用""括起来 ,需要加上配置  mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);(org.codehaus.jackson.JsonParseException: Unexpected character (')
    2. 如果属性名是用''括起来就要加上 mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
      (org.codehaus.jackson.JsonParseException: Unexpected character (''' )
    3. 如果抛出org.codehaus.jackson.map.exc.UnrecognizedPropertyException:错误,
      那么需要....配置.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES , false);

 

   发表时间:2012-02-08  
请教楼主个问题,怎么用jackson实现反序列化,特别是新版本jackson对List的反序列化,以前我是这么用的:
public static <T> T toObject(String json, Class<T> clazz) {
        try {
            return mapper.readValue(json, clazz);
        } catch (Exception e) {
            throw new RuntimeException("JsonUtil.fromJson发生错误", e);
        }
}

public static <T> List<T> toObjectList(String json, Class<T> clazz){
        try {
            return mapper.readValue(json, TypeFactory.collectionType(List.class, clazz));
        } catch (Exception e) {
            throw new RuntimeException("JsonUtil.fromJson发生错误", e);
        }
}
但是新版本里面TypeFactory.collectionType已经被deprecated,帮我看看怎么改,谢谢。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics