参考文章:http://www.cnblogs.com/hoojo/archive/2011/04/22/2024628.html  (原文章更详细哦,且有介绍xml与java对象的互转)

参考文章作者:hoojo

本例maven配置:

        <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId>
<version>1.9.11</version>
</dependency>

测试代码:

import java.io.IOException;

import com.fasterxml.jackson.core.JsonEncoding;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.ObjectMapper; public class TestJackSon { // 声明两个转换器
private ObjectMapper objectMapper = null; // 一般使用ObjectMapper就已足够
private JsonGenerator jsonGenerator = null; // 需要关闭 /**
* Java对象转换成JSON_1(objectMapper)
*/
public void test1() {
// 实例化转换器
objectMapper = new ObjectMapper(); // 测试
try {
User user = new User("ZhangSan", 25, "abc@163.com"); // 直接输出转化结果到服务台,返回void
System.out.println("直接输出到服务台:");
objectMapper.writeValue(System.out, user); // user可替换为List,Map等等其他类型,都可正常输出 } catch (Exception e) {
e.printStackTrace();
}
} /**
* Java对象转换成JSON_2(objectMapper)
*/
public void test2() {
// 实例化转换器
objectMapper = new ObjectMapper(); // 测试
try {
User user = new User("ZhangSan", 25, "abc@163.com");
// 返回String
String json = objectMapper.writeValueAsString(user); // user可替换为List,Map等等其他类型,都可正常输出
System.out.println("返回String:");
System.out.println(json); } catch (Exception e) {
e.printStackTrace();
}
} /**
* Json转Java对象(objectMapper)
*/
public void test3() {
// 实例化转换器
objectMapper = new ObjectMapper(); // 测试
try {
String json = "{\"name\":\"ZhangSan\",\"age\":25,\"emailAddress\":\"abc@163.com\"}";
User user = objectMapper.readValue(json, User.class); System.out.println(user.getName() + " | " + user.getAge() + " | " + user.getEmailAddress());
} catch (Exception e) {
e.printStackTrace();
}
} /**
* jsonGenerator的简单使用
*/
public void test4() {
// 实例化转换器
objectMapper = new ObjectMapper();
try {
jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(System.out, JsonEncoding.UTF8);
User user = new User("ZhangSan", 25, "abc@163.com"); // 测试
System.out.println("jsonGenerator:");
jsonGenerator.writeObject(user); //直接输出到控制台 // jsonGenerator需要关闭
if (jsonGenerator != null) {
jsonGenerator.flush();
}
if (!jsonGenerator.isClosed()) {
jsonGenerator.close();
}
} catch (IOException e) {
e.printStackTrace();
}
} /**
* 测试main
*/
public static void main(String[] args) {
TestJackSon test = new TestJackSon();
test.test4();
} } class User { public String name; public int age; public String emailAddress; /**
* 构造函数
*/
public User(String name, int age, String emailAddress) {
super();
this.name = name;
this.age = age;
this.emailAddress = emailAddress;
} // getters/setters(略) }

追加记录(2017-02-16):

可增加如下配置,解决json中属性多于java对象中属性时报错的问题.

objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
XXX xxx = objectMapper.readValue(jsonResult, XXX.class);

jackson的简单使用(可转xml)的更多相关文章

  1. Jackson(ObjectMapper)的简单使用(可转xml)

    参考文章:http://www.cnblogs.com/hoojo/archive/2011/04/22/2024628.html  (原文章更详细哦,且有介绍xml与java对象的互转) 参考文章作 ...

  2. Jackson的简单用法

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1简介 Jackson具有比较高的序列化和反序列化效率,据测试,无论是 ...

  3. FastJSON、Gson、Jackson(简单了解使用)

    下载地址(maven) Jackson:http://mvnrepository.com/search?q=jackson FastJson:http://mvnrepository.com/sear ...

  4. Json解析工具Jackson(简单应用)

    原文http://blog.csdn.net/nomousewch/article/details/8955796 概述 Jackson库(http://jackson.codehaus.org),是 ...

  5. Java解析XML文档(简单实例)——dom解析xml

      一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object ...

  6. jackson的简单实用实例(json)

    一个json格式的字符串比如: {"status":10001,"code":"HDkGzI","pubkey":&qu ...

  7. Jackson最简单用法

    jackson的包在:https://yunpan.cn/cu2b6eMaBjFpz  访问密码 753f 代码: ObjectMapper objectMapper = new ObjectMapp ...

  8. 简单实体类和xml文件的相互转换

    最近写一个题目,要求将一组员工实体类转换成xml文件,或将xml文件转换成一组实体类.题目不难,但写完感觉可以利用泛型和反射将任意一个实体类和xml文件进行转换.于是今天下午立马动手 试了下,做了个简 ...

  9. 单例模式、简单工厂模式、XML解析

    单例模式: 什么是单例模式? 针对特定问题提出的特定解决方案 为什么使用设计模式? 让程序有更好的可扩展性 在哪里使用? 一般情况下,开发中真正使用设计模式的地方,JVM(虚拟机)底层机制模式 usi ...

随机推荐

  1. hdu 4336 Card Collector(期望 dp 状态压缩)

    Problem Description In your childhood, people in the famous novel Water Margin, you will win an amaz ...

  2. SAX解析和生成XML文档

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本人声明.否则将追究法律责任. 作者: 永恒の_☆ 地址: http://blog.csdn.net/chenghui031 ...

  3. 用户向导页面实现左右滑动的ImageSwitcher

    当你第一次打开app时刻,通常有使用向导现在演示APK基本功能和用法,该向导是非常重要的,用户可以知道并调整到速度app如何. 实现此使用向导有非常多种方法,比方用ImageSwitcher.View ...

  4. zabbix-web界面图形中文乱码解决方法

    1.搜索windows-server X86-64机器上C:/windows/fonts的simkai.tts文件,windows7下有时候不行. 2.把它拷贝到zabbix的web端的fonts目录 ...

  5. WebApplication和WebSite的区别

    不同点 1. 创建方式不同 一个是FILE->NEW->PROJECT->ASP.NET WEB APPLICATION 另外一个是 FILE->NEW->WEBSITE ...

  6. Chrome开发者工具详解 (5):Application、Security、Audits面板

    Application面板简介 该面板主要是记录网站加载的所有资源信息,包括存储数据(Local Storage.Session Storage.IndexedDB.Web SQL.Cookies). ...

  7. Android 使用monkey自动测试

    很简单的一个monkey使用流程: 首先创建一个monkey脚本test.txt,例如一个简单的反复测试拍照功能的脚本: # Start of Script type= user count= 49 ...

  8. PHP学习笔记二十二【静态方法二】

    <?PHP class Student{ public static $fee; public $name; //构造函数 function __construct($name) { $this ...

  9. startActivityForResult中回调setResult注意事项

    读 http://www.cnblogs.com/lijunamneg/archive/2013/02/05/2892616.html 有感 文中提出了一个核心问题: Android activity ...

  10. 加载为应用程序池‘DefaultAppPool'提供服务的进程失败,应用程序池被禁用【解决方法】

    iis应用程序池不能启动2008年03月13日 星期四 15:29iis应用程序池不能启动.WINDOWS2003 ENT SERVER(64位)环境下(测试过32位系统一样操作无此问题),当打开“应 ...