jackson 完整Jar包
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包的更多相关文章
- MyEclipse 8.5 Axis2 插件完整jar包
http://download.csdn.net/download/hob007/4457837 MyEclipse 8.5 安装 Axis2 插件所需的完整JAR包 两个axis2插件,以及三个ja ...
- 如何在Github下载jackson的jar包
-------------------------这是jackson-annotations的,往下拉找到Downloads就有jar包下载了 https://github.com/FasterXML ...
- jar包下载地址(fasterxml.jackson)
jar包下载地址(fasterxml.jackson) Home » com.fasterxml.jackson » core jar包下载地址 https://mvnrepository.com/a ...
- Spring的各个jar包的作用介绍
spring4中各个jar包的介绍: Spring AOP:Spring的面向切面编程,提供AOP(面向切面编程)的实现 Spring Aspects:Spring提供的对AspectJ框架的整合Sp ...
- Eclipse 导出的jar包 , 使用后提示重复定义?
导出jar包时,一般会指定一个路径,导出的完整jar包就会自动放到那个指定路径里. 后来我发现那个指定路径的jar包比bin文件夹里面的jar包大,于是就用bin文件夹里面的jar包代替来试试,果然不 ...
- SpringBoot打包实现静态文件、配置文件、jar包分离
在pom文件里面添加 <plugins> <!--定义项目的编译环境--> <plugin> <groupId>org.apache.maven.plu ...
- 通过导入Jar包的方式使用JSONObject
如果想要在Java中使用JSONObject,而且只想通过导入jar包的方式下,那么仅仅导入Json的jar包还是不够的. 不然会报:java.lang.ClassNotFoundException: ...
- springmvc 项目完整示例04 整合mybatis mybatis所需要的jar包 mybatis配置文件 sql语句 mybatis应用
百度百科: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBat ...
- springmvc 项目完整示例07 设置配置整合springmvc springmvc所需jar包springmvc web.xml文件配置
前面主要是后台代码,spring以及mybatis的整合 下面主要是springmvc用来处理请求转发,展现层的处理 之前所有做到的,完成了后台,业务层和持久层的开发完成了 接下来就是展现层了 有很多 ...
随机推荐
- vtkTestHull将多个平面围成一个凸面体
1.vtkHull produce an n-sided convex hull vtkHull is a filter which will produce an n-sided convex hu ...
- video标签在移动端的一些属性值设置
<video x5-video-orientation="portraint" src="" loop x-webkit-airplay="al ...
- LeetCode.1002-寻找共有字符(Find Common Characters)
这是悦乐书的第375次更新,第402篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第236题(顺位题号是1002).给定仅由小写字母组成的字符串A,返回列表中所有字符串都 ...
- oop理论
三大特性: 封装:把对象的属性和行为独立的一个整体,并尽可能的隐藏对象内部实现细节.增加安全性. 继承:从已有的类中派生出新的类,称为子类,子类继承父类的属性和行为,并能根据自己的需求扩展出新的行为. ...
- PostgreSQL INSERT ON CONFLICT不存在则插入,存在则更新
近期有一个需求,向一张数据库表插入数据,如果是新数据则执行插入动作,如果插入的字段和已有字段重复,则更新该行对应的部分字段 1. 创建测试表 create table meta_data ( id s ...
- Ubuntu原生源
#deb cdrom:[Ubuntu 18.04.3 LTS _Bionic Beaver_ - Release amd64 (20190805)]/ bionic main restricted # ...
- Go语言代码结构与语法基础(二)
任何一门语言,都是从打印 hello world 开始的. 最简单的go代码: package main // 声明 main 包,表明当前是一个可执行程序 import "fmt" ...
- springboot2.0处理自定义异常始终返回json
1. 编写自定义异常类 package cn.jfjb.crud.exception; /** * @author john * @date 2019/11/24 - 9:48 */ public c ...
- 在 Chrome DevTools 中调试 JavaScript 入门
第 1 步:重现错误 找到一系列可一致重现错误的操作始终是调试的第一步. 点击 Open Demo. 演示页面随即在新标签中打开. OPEN DEMO 在 Number 1 文本框中输入 5. 在 N ...
- JAVA重写不需要@override
一,如下代码, package com.boot.enable.bootenable; import org.springframework.scheduling.annotation.Async; ...