如何使用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手機(jī)網(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(); } }
運(yùn)行測試方法,控制臺輸出:
{"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方法,運(yùn)行測試方法,控制臺輸出:
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(); } }
運(yùn)行測試方法,控制臺輸出:
<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(); } }
運(yùn)行測試方法,控制臺輸出:
{"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方法,運(yùn)行測試方法,控制臺輸出:
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(); } }
運(yùn)行測試方法,控制臺輸出:
<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)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)