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自行下载)

import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.map.DeserializationConfig.Feature;
import org.codehaus.jackson.map.MappingJsonFactory;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.JavaType; public class JsonUtils { public static <K, V> String toJson(Map<K, V> obj) {
String jsonString = "";
try {
if (obj == null) {
return "";
}
StringWriter sw = new StringWriter();
JsonGenerator gen = new JsonFactory().createJsonGenerator(sw);
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(gen, obj);
jsonString = sw.toString();
sw.close();
} catch (Exception ex) {
ex.printStackTrace();
return "";
} return jsonString;
} @SuppressWarnings("unchecked")
public static Map<String, Object> toMap(String json) {
Map<String, Object> result = new HashMap<String, Object>();
try {
if (json == null || json.equals("")) {
return null;
} ObjectMapper objectMapper = new ObjectMapper();
result = objectMapper.readValue(json, Map.class);
if (result == null) {
return new HashMap<String, Object>();
}
} catch (Exception ex) {
ex.printStackTrace();
} return result;
} public static String toJson(Object object) {
String json = "";
try {
if (object == null) {
return "";
}
StringWriter sw = new StringWriter();
JsonGenerator gen = new JsonFactory().createJsonGenerator(sw);
ObjectMapper mapper = new ObjectMapper(); mapper.writeValue(gen, object); json = sw.toString();
sw.close();
} catch (Exception ex) {
ex.printStackTrace();
json = "";
}
return json;
} public static <T> T toObject(String json, Class<T> clazz) {
T obj = null;
try {
if (json == null || json.equals("")) {
return null;
}
JsonFactory jsonFactory = new MappingJsonFactory();
JsonParser jsonParser = jsonFactory.createJsonParser(json);
ObjectMapper mapper = new ObjectMapper();
mapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES,false);
//mapper.getDeserializationConfig().set(Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
obj = mapper.readValue(jsonParser, clazz); } catch (Exception ex) {
ex.printStackTrace();
obj = null;
}
return obj; } public static <T> List<T> toList(String json, Class<T> clazz) {
if (json == null || json.equals("")) {
return null;
}
ObjectMapper mapper = new ObjectMapper();
mapper.configure(Feature.FAIL_ON_UNKNOWN_PROPERTIES,false);
List<T> list = new ArrayList<T>();
try {
JavaType type = mapper.getTypeFactory().constructParametricType(List.class, clazz);
list = mapper.readValue(json, type);
return list;
} catch (Exception e) {
e.printStackTrace();
} return list;
}
}

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. mac打开已损坏或者不明来源的应用的解决方法

    如遇:「xxx.app已损坏,打不开.你应该将它移到废纸篓」,并非你安装的软件已损坏,而是Mac系统的安全设置问题,因为这些应用都是破解或者汉化的,那么解决方法就是临时改变Mac系统安全设置.出现这个 ...

  2. mysql用sql语句创建表和数据 设置字符编码为utf-8

    简而言之 CREATE DATABASE xx CHARACTER SET utf8 COLLATE utf8_general_ci; USE xx; ),qname ) ) ) ) )); ) ,t ...

  3. 剑指OFFER数据结构与算法分类

    目录 数据结构 算法 数据结构 数组 有序二维数组查找 数组相对位置排序 数组顺时针输出 把数组排成最小的数 数组中的逆序对 扑克牌顺子 数组中重复的数字 构建乘积数组 链表 链表反向插入ArrayL ...

  4. Java锁机制ReentrantLock

    ReentrantLock 锁常用于保证程序的人为顺序执行. 写一个类模拟ReentrantLock类的功能 class MyLock{ private boolean lock = false; p ...

  5. Nginx日志监控工具

    ngxtop是一个基于python的程序,可以在Python上安装.ngxtop通过实时解析nginx访问日志, 并将结果(nginx服务器的有用指标)输出到终端. 主要的功能 当前有效请求 总请求计 ...

  6. 【VS开发】【C++语言】reshuffle的容器实现算法random_shuffle()的使用

    假设你需要指定范围内的随机数,传统的方法是使用ANSI C的函数random(),然后格式化结果以便结果是落在指定的范围内.但是,使用这个方法至少有两个缺点.首先,做格式化时,结果常常是扭曲的,所以得 ...

  7. flask 重定向详解

    from flask import Flask,request,redirect,url_for app = Flask(__name__) @app.route('/') def hello_wor ...

  8. openvswitch安装与使用

    wget http://openvswitch.org/releases/openvswitch-2.4.1.tar.gz tar -xvf openvswitch-2.4.1.tar.gz cd o ...

  9. HDU 1263 水果 (STL map)

    水果 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...

  10. Vue 系列(一): Vue + Echarts 开发可复用的柱形图组件

    目录 前置条件 安装echarts 引入echarts 柱形图组件开发 在何时初始化组件? 完整的代码 记得注册组件!!! 本文归柯三(kesan)所有,转载请注明出处 https://www.cnb ...