java中xml转JSON的工具类
时间: 2024-06-13 18:05:41 浏览: 158
在Java中,可以使用dom4j和fastjson库来实现XML转JSON的功能。具体步骤如下:
1.使用dom4j解析XML文件,将其转换为Document对象。
```java
SAXReader reader = new SAXReader();
Document document = reader.read(new File("example.xml"));
```
2.使用XPath表达式选择需要转换的节点,并将其转换为JSON对象。
```java
JSONObject jsonObject = new JSONObject();
Element root = document.getRootElement();
List<Element> elements = root.selectNodes("//book");
for (Element element : elements) {
JSONObject bookObject = new JSONObject();
bookObject.put("id", element.attributeValue("id"));
bookObject.put("name", element.elementText("name"));
bookObject.put("author", element.elementText("author"));
bookObject.put("price", element.elementText("price"));
jsonObject.put(element.attributeValue("id"), bookObject);
}
```
3.使用fastjson将JSON对象转换为JSON字符串。
```java
String jsonString = JSON.toJSONString(jsonObject);
```
完整代码如下:
```java
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.io.File;
import java.util.List;
public class XmlToJsonUtil {
public static String xmlToJson(String xmlFilePath) throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read(new File(xmlFilePath));
JSONObject jsonObject = new JSONObject();
Element root = document.getRootElement();
List<Element> elements = root.selectNodes("//book");
for (Element element : elements) {
JSONObject bookObject = new JSONObject();
bookObject.put("id", element.attributeValue("id"));
bookObject.put("name", element.elementText("name"));
bookObject.put("author", element.elementText("author"));
bookObject.put("price", element.elementText("price"));
jsonObject.put(element.attributeValue("id"), bookObject);
}
return JSON.toJSONString(jsonObject);
}
}
```
阅读全文