Dom4j是一個Java的XML解析庫,用于讀取、創建和編寫XML文件。JSON是一種輕量級的數據交換格式,易于閱讀和編寫。在開發過程中,我們可能需要將Dom4j的Document對象轉換成JSON格式,便于數據的傳輸和處理。本文將介紹如何使用Dom4j將XML轉換成JSON。
public static JSONObject xml2json(Document doc) { JSONObject json = new JSONObject(); Element root = doc.getRootElement(); json.put(root.getName(), iterateElement(root)); return json; } private static JSONObject iterateElement(Element element) { JSONObject obj = new JSONObject(); Listlist = element.elements(); for (Element e : list) { if (e.elements().size() == 0) { obj.put(e.getName(), e.getText()); } else { obj.put(e.getName(), iterateElement(e)); } } return obj; }
以上代碼中,我們定義了一個xml2json方法,將Dom4j的Document對象轉換成一個JSONObject對象,在迭代元素時,若該元素還有子元素,則遞歸調用iterateElement方法,將子元素添加到JSON對象中。否則,將元素的名稱和文本分別作為鍵和值添加到JSON對象中。
使用該方法,我們可以將XML格式的文件轉換成JSON格式。例如:
Harry Potter J.K. Rowling 2005 29.99 Learning XML Erik T. Ray 2003 39.95
轉換后的JSON格式為:
{ "bookstore": { "book": [ { "category": "CHILDREN", "title": { "lang": "en", "content": "Harry Potter" }, "author": "J.K. Rowling", "year": "2005", "price": "29.99" }, { "category": "WEB", "title": { "lang": "en", "content": "Learning XML" }, "author": "Erik T. Ray", "year": "2003", "price": "39.95" } ] } }
如此,我們就能方便地將Dom4j的Document對象轉換成JSON格式,實現更方便的數據傳輸和處理。