Jackson fasterxml和codehaus的区别: 他们是Jackson的两大分支、也是两个版本的不同包名。Jackson从2.0开始改用新的包名fasterxml;

1.x版本的包名是codehaus。除了包名不同,他们的Maven artifact id也不同。1.x版本现在只提供bug-fix,

2.x版本还在不断开发和发布中。如果是新项目,建议直接用2x,即fasterxml jackson。

P.S. Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。

官网:http://wiki.fasterxml.com/JacksonHome 三个主要的模块: jackson-co re:核心包 jackson-annotations:注解包 jackson-databind:数据绑定包 jackson-databind需要引用另外两个包,所以如果项目中需要jackson-databind,则只需要加入它的dependency就行了,其他两个会自动引入: <dependency> <groupId>com.fasterxml.jackson.

使用(java jar-jackson-all-1.9.0jar自行下载)

  1. import java.io.StringWriter;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6.  
  7. import org.codehaus.jackson.JsonFactory;
  8. import org.codehaus.jackson.JsonGenerator;
  9. import org.codehaus.jackson.JsonParser;
  10. import org.codehaus.jackson.map.DeserializationConfig.Feature;
  11. import org.codehaus.jackson.map.MappingJsonFactory;
  12. import org.codehaus.jackson.map.ObjectMapper;
  13. import org.codehaus.jackson.type.JavaType;
  14.  
  15. public class JsonUtils {
  16.  
  17. public static <K, V> String toJson(Map<K, V> obj) {
  18. String jsonString = "";
  19. try {
  20. if (obj == null) {
  21. return "";
  22. }
  23. StringWriter sw = new StringWriter();
  24. JsonGenerator gen = new JsonFactory().createJsonGenerator(sw);
  25. ObjectMapper mapper = new ObjectMapper();
  26. mapper.writeValue(gen, obj);
  27. jsonString = sw.toString();
  28. sw.close();
  29. } catch (Exception ex) {
  30. ex.printStackTrace();
  31. return "";
  32. }
  33.  
  34. return jsonString;
  35. }
  36.  
  37. @SuppressWarnings("unchecked")
  38. public static Map<String, Object> toMap(String json) {
  39. Map<String, Object> result = new HashMap<String, Object>();
  40. try {
  41. if (json == null || json.equals("")) {
  42. return null;
  43. }
  44.  
  45. ObjectMapper objectMapper = new ObjectMapper();
  46. result = objectMapper.readValue(json, Map.class);
  47. if (result == null) {
  48. return new HashMap<String, Object>();
  49. }
  50. } catch (Exception ex) {
  51. ex.printStackTrace();
  52. }
  53.  
  54. return result;
  55. }
  56.  
  57. public static String toJson(Object object) {
  58. String json = "";
  59. try {
  60. if (object == null) {
  61. return "";
  62. }
  63. StringWriter sw = new StringWriter();
  64. JsonGenerator gen = new JsonFactory().createJsonGenerator(sw);
  65. ObjectMapper mapper = new ObjectMapper();
  66.  
  67. mapper.writeValue(gen, object);
  68.  
  69. json = sw.toString();
  70. sw.close();
  71. } catch (Exception ex) {
  72. ex.printStackTrace();
  73. json = "";
  74. }
  75. return json;
  76. }
  77.  
  78. public static <T> T toObject(String json, Class<T> clazz) {
  79. T obj = null;
  80. try {
  81. if (json == null || json.equals("")) {
  82. return null;
  83. }
  84. JsonFactory jsonFactory = new MappingJsonFactory();
  85. JsonParser jsonParser = jsonFactory.createJsonParser(json);
  86. ObjectMapper mapper = new ObjectMapper();
  87. mapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES,false);
  88. //mapper.getDeserializationConfig().set(Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
  89. obj = mapper.readValue(jsonParser, clazz);
  90.  
  91. } catch (Exception ex) {
  92. ex.printStackTrace();
  93. obj = null;
  94. }
  95. return obj;
  96.  
  97. }
  98.  
  99. public static <T> List<T> toList(String json, Class<T> clazz) {
  100. if (json == null || json.equals("")) {
  101. return null;
  102. }
  103. ObjectMapper mapper = new ObjectMapper();
  104. mapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES,false);
  105. List<T> list = new ArrayList<T>();
  106. try {
  107. JavaType type = mapper.getTypeFactory().constructParametricType(List.class, clazz);
  108. list = mapper.readValue(json, type);
  109. return list;
  110. } catch (Exception e) {
  111. e.printStackTrace();
  112. }
  113.  
  114. return list;
  115. }
  116. }

jackson 完整Jar包的更多相关文章

  1. MyEclipse 8.5 Axis2 插件完整jar包

    http://download.csdn.net/download/hob007/4457837 MyEclipse 8.5 安装 Axis2 插件所需的完整JAR包 两个axis2插件,以及三个ja ...

  2. 如何在Github下载jackson的jar包

    -------------------------这是jackson-annotations的,往下拉找到Downloads就有jar包下载了 https://github.com/FasterXML ...

  3. jar包下载地址(fasterxml.jackson)

    jar包下载地址(fasterxml.jackson) Home » com.fasterxml.jackson » core jar包下载地址 https://mvnrepository.com/a ...

  4. Spring的各个jar包的作用介绍

    spring4中各个jar包的介绍: Spring AOP:Spring的面向切面编程,提供AOP(面向切面编程)的实现 Spring Aspects:Spring提供的对AspectJ框架的整合Sp ...

  5. Eclipse 导出的jar包 , 使用后提示重复定义?

    导出jar包时,一般会指定一个路径,导出的完整jar包就会自动放到那个指定路径里. 后来我发现那个指定路径的jar包比bin文件夹里面的jar包大,于是就用bin文件夹里面的jar包代替来试试,果然不 ...

  6. SpringBoot打包实现静态文件、配置文件、jar包分离

    在pom文件里面添加 <plugins> <!--定义项目的编译环境--> <plugin> <groupId>org.apache.maven.plu ...

  7. 通过导入Jar包的方式使用JSONObject

    如果想要在Java中使用JSONObject,而且只想通过导入jar包的方式下,那么仅仅导入Json的jar包还是不够的. 不然会报:java.lang.ClassNotFoundException: ...

  8. springmvc 项目完整示例04 整合mybatis mybatis所需要的jar包 mybatis配置文件 sql语句 mybatis应用

    百度百科: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBat ...

  9. springmvc 项目完整示例07 设置配置整合springmvc springmvc所需jar包springmvc web.xml文件配置

    前面主要是后台代码,spring以及mybatis的整合 下面主要是springmvc用来处理请求转发,展现层的处理 之前所有做到的,完成了后台,业务层和持久层的开发完成了 接下来就是展现层了 有很多 ...

随机推荐

  1. #Java学习之路——基础阶段二(第十四篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  2. 【神经网络与深度学习】CIFAR-10数据集介绍

    CIFAR-10数据集含有6万个32*32的彩色图像,共分为10种类型,由 Alex Krizhevsky, Vinod Nair和 Geoffrey Hinton收集而来.包含50000张训练图片, ...

  3. spring boot-8.静态资源映射

    1.webjars WebJars是将客户端(浏览器)资源(javascript,Css等)打成jar包文件,以对资源进行统一依赖管理.WebJars的jar包部署在Maven中央仓库上.官网地址:h ...

  4. [转帖]oracle 00600 4194 4193 问题的处理

    oracle断电重启之ORA-00600[4194] https://www.cnblogs.com/xwdreamer/p/3778383.html 部门的机器出现异常 断电导致的 错误 从网上学了 ...

  5. mybatis使用的一点小结:session运行模式及批量提交(转)

    mybatis的执行器有三种类型: ExecutorType.SIMPLE 这个类型不做特殊的事情,它只为每个语句创建一个PreparedStatement. ExecutorType.REUSE 这 ...

  6. C语言 --- 高级指针

    1. 指针赋值: C语言允许使用赋值运算进行指针的赋值,前提是两个指针具有相同的类型.                 int i,*p,*q;                 p = &i; ...

  7. SCUT - 492 - 鬼符「搦手的鬼畜生」 - 简单数学

    https://scut.online/p/492 求[1,a]范围内的a模m的逆元的数量. 一开始用扩展欧几里得算法草了一发,WA了,当时不太清楚模非质数的周期,看来扩展欧几里得算法的笔记才知道要加 ...

  8. gym102215题解

    A Rooms and Passages 题意 给n个数,从起点出发,一直往右走,遇到一个前面出现过其相反数的正数就停下,问对于每个起点都能走多少步. 分析 倒着递推,如果起点是正数,那么肯定可以走, ...

  9. JavaSE--基础知识

    Java基础知识 一.基础知识 1.java命名规则 由26个英文字母大小写,0-9 ,_或 $ 组成 数字不可以开头. 不可以使用关键字和保留字,但能包含关键字和保留字. Java中严格区分大小写, ...

  10. CentOS 7 安装MongoDB 4.0

    1.创建yum源文件 /etc/yum.repos.d/mongodb-org-4.0.repo [mongodb-org-4.0] name=MongoDB Repository baseurl=h ...