在java项目中將一个对象转换成一段json格式的字符串是非常常见的,能够实现这种需求的工具包也比较多,例如gson、json-lib、jackson等等。本文主要介绍jackson的使用,jackson除了能实现java对象与json串的互转外,还能將java对象转换为xml格式,使用较为简单而且据说效率比较高。
对于jackson的jar包我们可以从maven资源库中下载:http://www.php.cn/
所需jar包如下,按照名称搜索下载即可。
Easily find JSON paths within JSON objects using our intuitive Json Path Finder
30

接下来编写测试用例,我们需要一个java类:
package com.csii.jackson.object;
public class Book{
private String name;
private int price;
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getPrice() {
return price;
} public void setPrice(int price) {
this.price = price;
} public Book() {
} public Book(String name,int price) {
this.name = name;
this.price = price;
}
@Override
public String toString() {
return "name:" + name +"; price:" + price;
}
}1.將Java对象转换为Json字符串:
立即学习“Java免费学习笔记(深入)”;
@Test public void testGenJson()
{
ObjectMapper objMapper = new ObjectMapper();
Book book = new Book("Think in Java",100); try {
jsonGen = objMapper.getJsonFactory().createJsonGenerator(System.out,JsonEncoding.UTF8);
jsonGen.writeObject(book);
} catch (IOException e) {
e.printStackTrace();
}
}运行测试方法,控制台输出:
{"name":"Think in Java","price":100}2.將Json字符串转为Java对象:
/*
* Json转Java对象
*/
@Test public void testGenObjByJson()
{
ObjectMapper objMapper = new ObjectMapper();
String json = "{\"name\":\"Think in Java\",\"price\":100}";
try {
Book book = objMapper.readValue(json, Book.class);
System.out.println(book);
} catch (IOException e) {
e.printStackTrace();
}
}由于我们重写了Book类的toString方法,运行测试方法,控制台输出:
name:Think in Java; price:100
3.將Java对象转为Xml格式:
/*
* Java对象转xml
*/
@Test public void testGenXml()
{
XmlMapper xmlMapper = new XmlMapper();
Book book = new Book("Think in Java",100); try {
String xmlStr = xmlMapper.writeValueAsString(book);
System.out.println(xmlStr);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}运行测试方法,控制台输出:
<Book xmlns=""><name>Think in Java</name><price>100</price></Book>
4.將xml格式字符串转为Java对象:
/*
* xml转Java对象
*/
@Test public void testGenObjByXml()
{
XmlMapper xmlMapper = new XmlMapper();
String xmlStr = "<Book><name>Think in Java</name><price>100</price></Book>";
try {
Book book = xmlMapper.readValue(xmlStr, Book.class);
System.out.println(book);
} catch (IOException e) { // TODO Auto-generated catch block
e.printStackTrace();
}
}输出内容:
name:Think in Java; price:100
完整的测试用例代码:
package com.csii.jackson.test;
import java.io.IOException;
import org.junit.Test;
import com.csii.jackson.object.Book;
import com.fasterxml.jackson.core.JsonEncoding;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
@SuppressWarnings("deprecation")
public class JsonTest {
private JsonGenerator jsonGen = null;
/*
* Java对象转 Json
*/
@Test
public void testGenJson()
{
ObjectMapper objMapper = new ObjectMapper();
Book book = new Book("Think in Java",100);
try {
jsonGen = objMapper.getJsonFactory().createJsonGenerator(System.out,JsonEncoding.UTF8);
jsonGen.writeObject(book);
} catch (IOException e) {
e.printStackTrace();
}
} /*
* Json转Java对象
*/
@Test
public void testGenObjByJson()
{
ObjectMapper objMapper = new ObjectMapper();
String json = "{\"name\":\"Think in Java\",\"price\":100}";
try {
Book book = objMapper.readValue(json, Book.class);
System.out.println(book);
} catch (IOException e) {
e.printStackTrace();
}
} /*
* Java对象转xml
*/
@Test
public void testGenXml()
{
XmlMapper xmlMapper = new XmlMapper();
Book book = new Book("Think in Java",100);
try {
String xmlStr = xmlMapper.writeValueAsString(book);
System.out.println(xmlStr);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
} /*
* xml转Java对象
*/
@Test
public void testGenObjByXml()
{
XmlMapper xmlMapper = new XmlMapper();
String xmlStr = "<Book><name>Think in Java</name><price>100</price></Book>";
try {
Book book = xmlMapper.readValue(xmlStr, Book.class);
System.out.println(book);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}在java项目中將一个对象转换成一段json格式的字符串是非常常见的,能够实现这种需求的工具包也比较多,例如gson、json-lib、jackson等等。本文主要介绍jackson的使用,jackson除了能实现java对象与json串的互转外,还能將java对象转换为xml格式,使用较为简单而且据说效率比较高。
对于jackson的jar包我们可以从maven资源库中下载:http://www.php.cn/
所需jar包如下,按照名称搜索下载即可。

接下来编写测试用例,我们需要一个java类:
package com.csii.jackson.object;
public class Book{
private String name;
private int price;
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getPrice() {
return price;
} public void setPrice(int price) {
this.price = price;
} public Book() {
} public Book(String name,int price) {
this.name = name;
this.price = price;
}
@Override
public String toString() {
return "name:" + name +"; price:" + price;
}
}1.將Java对象转换为Json字符串:
立即学习“Java免费学习笔记(深入)”;
@Test public void testGenJson()
{
ObjectMapper objMapper = new ObjectMapper();
Book book = new Book("Think in Java",100); try {
jsonGen = objMapper.getJsonFactory().createJsonGenerator(System.out,JsonEncoding.UTF8);
jsonGen.writeObject(book);
} catch (IOException e) {
e.printStackTrace();
}
}运行测试方法,控制台输出:
{"name":"Think in Java","price":100}2.將Json字符串转为Java对象:
/*
* Json转Java对象
*/
@Test public void testGenObjByJson()
{
ObjectMapper objMapper = new ObjectMapper();
String json = "{\"name\":\"Think in Java\",\"price\":100}";
try {
Book book = objMapper.readValue(json, Book.class);
System.out.println(book);
} catch (IOException e) {
e.printStackTrace();
}
}由于我们重写了Book类的toString方法,运行测试方法,控制台输出:
name:Think in Java; price:100
3.將Java对象转为Xml格式:
/*
* Java对象转xml
*/
@Test public void testGenXml()
{
XmlMapper xmlMapper = new XmlMapper();
Book book = new Book("Think in Java",100); try {
String xmlStr = xmlMapper.writeValueAsString(book);
System.out.println(xmlStr);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}运行测试方法,控制台输出:
<Book xmlns=""><name>Think in Java</name><price>100</price></Book>
4.將xml格式字符串转为Java对象:
/*
* xml转Java对象
*/
@Test public void testGenObjByXml()
{
XmlMapper xmlMapper = new XmlMapper();
String xmlStr = "<Book><name>Think in Java</name><price>100</price></Book>";
try {
Book book = xmlMapper.readValue(xmlStr, Book.class);
System.out.println(book);
} catch (IOException e) { // TODO Auto-generated catch block
e.printStackTrace();
}
}输出内容:
name:Think in Java; price:100
完整的测试用例代码:
package com.csii.jackson.test;
import java.io.IOException;
import org.junit.Test;
import com.csii.jackson.object.Book;
import com.fasterxml.jackson.core.JsonEncoding;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
@SuppressWarnings("deprecation")
public class JsonTest {
private JsonGenerator jsonGen = null;
/*
* Java对象转 Json
*/
@Test
public void testGenJson()
{
ObjectMapper objMapper = new ObjectMapper();
Book book = new Book("Think in Java",100);
try {
jsonGen = objMapper.getJsonFactory().createJsonGenerator(System.out,JsonEncoding.UTF8);
jsonGen.writeObject(book);
} catch (IOException e) {
e.printStackTrace();
}
} /*
* Json转Java对象
*/
@Test
public void testGenObjByJson()
{
ObjectMapper objMapper = new ObjectMapper();
String json = "{\"name\":\"Think in Java\",\"price\":100}";
try {
Book book = objMapper.readValue(json, Book.class);
System.out.println(book);
} catch (IOException e) {
e.printStackTrace();
}
} /*
* Java对象转xml
*/
@Test
public void testGenXml()
{
XmlMapper xmlMapper = new XmlMapper();
Book book = new Book("Think in Java",100);
try {
String xmlStr = xmlMapper.writeValueAsString(book);
System.out.println(xmlStr);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
} /*
* xml转Java对象
*/
@Test
public void testGenObjByXml()
{
XmlMapper xmlMapper = new XmlMapper();
String xmlStr = "<Book><name>Think in Java</name><price>100</price></Book>";
try {
Book book = xmlMapper.readValue(xmlStr, Book.class);
System.out.println(book);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}以上就是Java对象、Json、Xml转换工具Jackson使用的内容,更多相关内容请关注PHP中文网(www.php.cn)!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号