如何使用Jackson工具對Java對象、Json和Xml進(jìn)行轉(zhuǎn)換?針對這個問題,這篇文章給出了相對應(yīng)的分析和解答,希望能幫助更多想解決這個問題的朋友找到更加簡單易行的辦法。
發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務(wù)至上”的服務(wù)理念,堅持“二合一”的優(yōu)良服務(wù)模式,真誠服務(wù)每家企業(yè),認(rèn)真做好每個細(xì)節(jié),不斷完善自我,成就企業(yè),實現(xiàn)共贏。行業(yè)涉及電動窗簾等,在成都網(wǎng)站建設(shè)、成都營銷網(wǎng)站建設(shè)、WAP手機網(wǎng)站、VI設(shè)計、軟件開發(fā)等項目上具有豐富的設(shè)計經(jīng)驗。
在Java項目中將一個對象轉(zhuǎn)換成一段Json格式的字符串是非常常見的,能夠?qū)崿F(xiàn)這種需求的工具包也比較多,例如Gson、JSON-lib、Jackson等等。本文主要介紹Jackson的使用,Jackson除了能實現(xiàn)Java對象與Json串的互轉(zhuǎn)外,還能將Java對象轉(zhuǎn)換為Xml格式,使用較為簡單而且據(jù)說效率比較高。
對于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對象轉(zhuǎn)換為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();
}
}運行測試方法,控制臺輸出:
{"name":"Think in Java","price":100}2.將Json字符串轉(zhuǎn)為Java對象:
/*
* Json轉(zhuǎn)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對象轉(zhuǎn)為Xml格式:
/*
* Java對象轉(zhuǎn)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格式字符串轉(zhuǎn)為Java對象:
/*
* xml轉(zhuǎn)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();
}
}輸出內(nèi)容:
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對象轉(zhuǎn) 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轉(zhuǎn)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對象轉(zhuǎn)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轉(zhuǎn)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項目中將一個對象轉(zhuǎn)換成一段Json格式的字符串是非常常見的,能夠?qū)崿F(xiàn)這種需求的工具包也比較多,例如Gson、JSON-lib、Jackson等等。本文主要介紹Jackson的使用,Jackson除了能實現(xiàn)Java對象與Json串的互轉(zhuǎn)外,還能將Java對象轉(zhuǎn)換為Xml格式,使用較為簡單而且據(jù)說效率比較高。
對于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對象轉(zhuǎn)換為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();
}
}運行測試方法,控制臺輸出:
{"name":"Think in Java","price":100}2.將Json字符串轉(zhuǎn)為Java對象:
/*
* Json轉(zhuǎn)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對象轉(zhuǎn)為Xml格式:
/*
* Java對象轉(zhuǎn)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格式字符串轉(zhuǎn)為Java對象:
/*
* xml轉(zhuǎn)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();
}
}輸出內(nèi)容:
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對象轉(zhuǎn) 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轉(zhuǎn)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對象轉(zhuǎn)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轉(zhuǎn)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();
}
}
}以上就是使用Jackson工具對Java對象、Json和Xml進(jìn)行轉(zhuǎn)換的方法,詳細(xì)使用情況還需要大家自己親自動手使用過才能領(lǐng)會。如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享題目:如何使用Jackson工具對Java對象、Json和Xml進(jìn)行轉(zhuǎn)換
網(wǎng)頁鏈接:http://chinadenli.net/article18/jiepdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、云服務(wù)器、營銷型網(wǎng)站建設(shè)、定制開發(fā)、網(wǎng)站收錄、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)