JAVA中 xml字符串怎么转json
时间: 2023-09-19 18:06:04 浏览: 126
java 把xml转化为json
### 回答1:
可以使用第三方库,比如 JSON-lib、Jackson 等来实现 XML 字符串到 JSON 字符串的转换。
具体的做法如下:
1. 先将 XML 字符串转换为 org.w3c.dom.Document 对象。
2. 使用 Jackson 的 XmlMapper 将 Document 对象映射为 JSON 对象。
3. 最后使用 Jackson 的 ObjectMapper 将 JSON 对象转换为 JSON 字符串。
代码示例:
```
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.fasterxml.jackson.databind.ObjectMapper;
public class XmlToJson {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException, JsonProcessingException {
String xmlString = "<foo>\n" +
" <bar>\n" +
" <type foobar=\"test\">test type</type>\n" +
" <value>test value</value>\n" +
" </bar>\n" +
" <bar>\n" +
" <type>test type2</type>\n" +
" <value>test value2</value>\n" +
" </bar>\n" +
"</foo>";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader(xmlString)));
XmlMapper xmlMapper = new XmlMapper();
JsonNode jsonNode = xmlMapper.readTree(document);
ObjectMapper objectMapper = new ObjectMapper();
String jsonString = objectMapper.writeValueAsString(jsonNode);
System.out.println(jsonString);
}
}
```
### 回答2:
在Java中,我们可以使用第三方库来将XML字符串转换为JSON。以下是一个使用Jackson库的示例代码:
```java
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.json.JSONObject;
import org.json.XML;
public class XmlToJsonConverter {
public static void main(String[] args) {
String xmlString = "<root><name>John Doe</name><age>30</age></root>";
// 使用JSON库将XML字符串转换为JSONObject
JSONObject jsonObject = XML.toJSONObject(xmlString);
// 使用Jackson库将JSONObject转换为JSON字符串
ObjectMapper mapper = new ObjectMapper();
String jsonString = jsonObject.toString();
try {
JsonNode jsonNode = mapper.readTree(jsonString);
jsonString = mapper.writeValueAsString(jsonNode);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(jsonString);
}
}
```
在上述代码中,我们首先使用`XML.toJSONObject()`方法将XML字符串转换为JSONObject。然后,我们使用Jackson库的`ObjectMapper`类将JSONObject转换为JSON字符串。最终,我们打印出JSON字符串的结果。
需要注意的是,我们需要在项目中添加相关的依赖,例如Jackson和org.json库的依赖,以便在代码中正确使用这些类和方法。
### 回答3:
在Java中,将XML字符串转换为JSON可以使用许多不同的方法。以下是一个可能的实现方法:
1. 引入相关的库或框架:例如,可以使用Jackson、Gson、Json-lib等库来实现XML到JSON的转换。
2. 将XML字符串转换为Java对象:使用合适的库将XML字符串解析为Java对象。不同的库可能会有不同的解析方法和API。
3. 将Java对象转换为JSON:使用选定的库将Java对象转换为JSON格式的字符串。通常,这些库会提供一些方法来转换Java对象为JSON。
以下是使用Jackson库将XML字符串转换为JSON的示例代码:
```java
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
public class XmlToJsonConverter {
public static void main(String[] args) {
try {
String xmlString = "<root><name>John</name><age>25</age></root>";
// 创建XmlMapper对象
XmlMapper xmlMapper = new XmlMapper();
// 将XML转换为JsonNode对象
JsonNode jsonNode = xmlMapper.readTree(xmlString.getBytes());
// 将JsonNode对象转换为JSON字符串
String jsonString = xmlMapper.writeValueAsString(jsonNode);
System.out.println("XML字符串: " + xmlString);
System.out.println("转换后的JSON字符串: " + jsonString);
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在上述示例中,我们首先创建了一个XmlMapper对象,然后使用其readTree方法将XML字符串转换为JsonNode对象。最后,使用writeValueAsString方法将JsonNode对象转换为JSON字符串。
请注意,此示例仅用于演示目的。实际转换方法可能因所选库或框架的不同而有所不同。
阅读全文