JAVA物件與XML的互轉
前幾天學習了用Marshaller 來實現Java物件與xml的互轉,現在記錄一下筆記,以便以後查閱。
Marshaller 類負責管理將 Java 內容樹序列化回 XML 資料的過程。
話不多說,直接上程式碼。
首先這裡需要建立兩個類 Article 和 ArticleList , 這就是需要序列化到XML的物件。。注意XmlRootElement註解
package object2XML; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name="article") public class Article{ private String title; private String author; private String email; private String date; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } }
package object2XML; import java.util.ArrayList; import java.util.List; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name="articleList") public class ArticleList { List<Article> articleList = new ArrayList<Article>(); public List<Article> getArticleList() { return articleList; } public void setArticleList(List<Article> articleList) { this.articleList = articleList; } }
然後開始Java物件和XML的互轉。。。程式碼很簡單,就不多說了。。
首先是Object2XML
package object2XML;
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
public class Object2XML {
public static void main(String [] args){
File xmlFile = new File("G:\\test.xml");
JAXBContext context ; //宣告JAXBContext上下文物件
try{ //通過指定的類建立上下文物件
context= JAXBContext.newInstance(Article.class);
Marshaller marshaller =context.createMarshaller();
Article article = new Article();
article.setAuthor("Jerry");
article.setDate("2014-9-21");
article.setEmail(" [email protected]");
article.setTitle("XML概述");
//將Java物件轉換成xml檔案
marshaller.marshal(article,xmlFile);
}catch(JAXBException e){
e.printStackTrace();
}
}
}
然後 XML2Object
package object2XML;
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
public class XML2Object {
/**
* @param args
* @throws JAXBException
*/
public static void main(String[] args) throws JAXBException {
// TODO Auto-generated method stub
JAXBContext context ; //宣告JAXBContext上下文物件
File xmlFile = new File("G:\\test.xml");
context =JAXBContext.newInstance(Article.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Article article= (Article)unmarshaller.unmarshal(xmlFile);
System.out.println(article.getAuthor());
System.out.println(article.getDate());
System.out.println(article.getEmail());
System.out.println(article.getTitle());
}
}
然後是List和XML的互轉。。
List2XML
package object2XML;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
public class List2XML {
/**
* @param args
* @throws JAXBException
*/
public static void main(String[] args) throws JAXBException {
// TODO Auto-generated method stub
File xmlFile = new File("G:\\test2.xml");
JAXBContext context ; //宣告JAXBContext上下文物件
context= JAXBContext.newInstance(ArticleList.class);
Marshaller marshaller =context.createMarshaller();
ArticleList articleList = new ArticleList();
Article article = new Article();
article.setAuthor("Jerry");
article.setDate("2014-9-21");
article.setEmail("[email protected]");
article.setTitle("XML概述");
Article article2 = new Article();
article2.setAuthor("Tom");
article2.setDate("2014-10-21");
article2.setEmail("[email protected]");
article2.setTitle("XML概述222");
List<Article> list = new ArrayList<Article> ();
list.add(article);
list.add(article2);
articleList.setArticleList(list);
//將Java物件轉換成xml檔案
marshaller.marshal(articleList,xmlFile);
}
}
然後XML2List
package object2XML;
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
public class XML2List {
/**
* @param args
* @throws JAXBException
*/
public static void main(String[] args) throws JAXBException {
// TODO Auto-generated method stub
JAXBContext context ; //宣告JAXBContext上下文物件
File xmlFile = new File("G:\\test2.xml");
context =JAXBContext.newInstance(ArticleList.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
ArticleList articleList= ( ArticleList)unmarshaller.unmarshal(xmlFile);
System.out.println(articleList.getArticleList().get(0).getAuthor());
System.out.println(articleList.getArticleList().get(1).getAuthor());
}
}
這樣就差不多完成了,最後注意一下 物件類註解那裡 @XmlRootElement(name="articleList") 這裡的name是 articleList ,對應著從XML轉化成list的時候 ArticleList articleList= ( ArticleList)unmarshaller.unmarshal(xmlFile); 必須用相同的名字的物件來接收(articleList), 不然會報錯的。。。
是不是很簡單呢,小夥伴們也趕緊試試吧。。。
相關推薦
java物件與XML互轉
1. 定義XML對應的java實體類(可巢狀) import java.io.Serializable; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorT
JAVA bean與XML互轉的利器---XStream
pub 普通 ati mat his cit true 是我 package 最近在項目中遇到了JAVA bean 和XML互轉的需求, 本來準備循規蹈矩使用dom4j忽然想起來之前曾接觸過的XStream, 一番研究豁然開朗,利器啊利器, 下來就XStream的一些用法與
利用JAXB對java物件和xml互轉
好一段時間沒寫部落格了,一直出差得有半年多時間了吧!其實還是懶,哈哈 最近算是轉行做大資料了,還好有個前輩帶帶,應該是比不少人少走彎路吧! 這東西主要學的是思想 今天寫個java物件和xml互轉的(專案的要用到xml的配置檔案) 主要是用JAXB實現java
Xstream 物件與xml 互轉
需要 jar : xtream.jar 第一步:工具類 public class XStreamWrapper { private XStream xstream; public XStreamWrapper() { xstream = new
JAVA物件與XML的互轉
前幾天學習了用Marshaller 來實現Java物件與xml的互轉,現在記錄一下筆記,以便以後查閱。 Marshaller 類負責管理將 Java 內容樹序列化回 XML 資料的過程。 話不多說,直接上程式碼。 首先
java 中文與unicode互轉
true format param cte _id col rms AI deb public class FontUtil { public static void main(String[] args) { System.out.pr
php數組與xml互轉類
php數組與xml互轉類代碼: /** * @desc:xml與array互轉 * @author [Lee] <[<[email protected]>]> * @property * data 傳入的數據 * @method * arraytoxml 數組轉xml
java 中 Object XML 互轉,最終選擇Xstream
前言 spring boot 2.0.0 RELEASE maven 3.5.0 專案中需要進行 Object 與 XML 的互轉。為此嘗試了幾個互轉工具,進行記錄。 耗費了一天的時間,將FasterXML、Caster、JAXB、Xstream都嘗試了一遍
JAVA STRING與INTEGER互轉
1、String轉Integer String a = “123”; Integer b = Integer.parseInt(a); 2、Integer轉String Integer a = 123; String b = a.toString();
c# 託管物件與InPtr互轉
//託管物件轉interPtr GCHandle thisHandle = GCHandle.Alloc(this); nGCHandle.ToIntPtr(thisHandle); //interPtr轉非託管物件 GCHandle gcUser = GCHandle.FromInt
Java字串與日期互轉
Java字串與日期的相互轉換 1.字串轉日期 字串的格式與日期的格式一定要對應,並且字串格式可以比日期格式多,但不能少,數字大小不自動計算日期。其中需要主要大小寫 年yyyy 月MM 日dd 時HH 分mm 秒ss 毫秒SS String str = "2018/
序列化與JavaBean與xml互轉
序列化和反序列化: 一、序列化和反序列化的概念 把物件轉換為位元組序列的過程稱為物件的序列化。 把位元組序列恢復為物件的過程稱為物件的反序列化。 物件的序列化主要有兩種用途: 1) 把物件的位元組序列永久地儲存到硬碟上,通常存放在一
java string與unicode互轉
1.string轉unicode public static String string2Unicode(String string) { StringBuffer unicode = new StringBuffer();
json與xml互轉
一、簡介 本文介紹json串與xml串相互轉換的一種方式。 二、開發步驟 1、新增maven依賴 <dependency> <groupId>org.json<
DataSet(DataTable)與XML互轉
using System; using System.Data; using System.IO; using System.Xml; using System.
String與XML互轉以及從XML取節點值並修改
讀取xml檔案生成Document物件 Document轉換成String型別串 String串轉成xml 已知xml節點取節點值 已知xml節點修改節點值 一個xml檔案: <?xml version="1.0" encoding="UTF-8"
XStream轉換java物件與XML
XStream是一個Java物件和XML相互轉換的工具,很好很強大。提供了所有的基礎型別、陣列、集合等型別直接轉換的支援。因此XML常用於資料交換、物件序列化(這種序列化和Java物件的序列化技術有著本質的區別)。 XStream物件相當Java物件和XML之間的轉換器
Map物件與JavaBean互轉,List與List互轉等
直接上程式碼。 下面的將map轉為JavaBean用到了泛型,適應性更強。 將JavaBean轉為map物件還未做優化。第三個方法和第四個方法是對前兩個方法的升級。//關鍵包引用列舉一下 import com.sun.org.apache.commons.beanutils.
java byte與char互轉原理
一、位元組和unicode Java核心是unicode的,就連class檔案也是,但是很多媒體,包括檔案/流的儲存方式是使用位元組流的。因此Java要對這些位元組流經行轉化。 char是unicode的,而byte是位元組。Java中 byte/char互轉的函式在sun.io的包中間有。其中ByteTo
java string與byte[]互轉
string 轉byte[] 如1122轉{0x11,0x12} public static byte[] hexString2Bytes(String s) { byte[] bytes; bytes = new byte[s.lengt