参考文章: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. WEB应用知识一二三

    1.HTTP协议 |--基于请求(Request)和响应(Response)的无状态通讯协议 浏览器和WEB应用程序通过HTTP进行通信.客户端通过URL对指定服务器要求特定位置的数据 |--POST ...

  2. <% %> 、 <%= %> 、<%# %> 的区别

    1,<% %>用来绑定后台代码    中间一般放函数或者方法,典型的asp程序写法. 在前台页面可以写后台代码                 相当于开辟了C#空间,可以写C#代码 2,& ...

  3. PC-常见问题-清除浮动

    常用:.clear{clear:both;height:0px;overflow:hidden;}>最优浮动闭合方案(这是我们推荐的): .clearfix:after{content:&quo ...

  4. Android应用程序注冊广播接收器(registerReceiver)的过程分析

    前面我们介绍了Android系统的广播机制,从本质来说,它是一种消息订阅/公布机制,因此,使用这样的消息驱动模型的第一步便是订阅消息:而对Android应用程序来说,订阅消息事实上就是注冊广播接收器, ...

  5. windows下常用的操作命令及dos命令

    常用windows运行命令mstsc---远程桌面连接regedit.exe---打开注册表services.msc---打开服务管理器rsop.msc---组策略结果集taskmgr---任务管理器 ...

  6. JQuery 1.3.2联动获取部门

    Sql       $(document).ready(function(){ $(".dept").bind("click", function () { v ...

  7. HTML与CSS入门——第一章 理解Web的工作方式

    知识点: 1.万维网的简史 2."网页"的含义,以及该术语不能反映所涉及的所有内容的原因 3.如何从你的个人计算机进入别人的浏览器 4.选择Web托管提供商的方法 5.不同的Web ...

  8. Cisco cmd 命令

    1.enable 开启全局配置模式:disable 禁用配置模式 2.config进入配置模式 3.line 设置进入用户模式密码:分为 line aux 0;line console 0;line ...

  9. CString常用操作

    ①.CString 类对象的初始化: CString str; CString str1(_T("abc")); CString str2 = _T("defg" ...

  10. maven使用笔记一 下载json-lib引发的问题

    一.问题描述(IDEA中): 1,在pom.xml中配置了 <dependency> <groupId>net.sf.json-lib</groupId> < ...