溫馨提示×

Gson Java如何處理XML與JSON轉(zhuǎn)換

小樊
82
2024-10-22 18:07:20
欄目: 編程語言

Gson 本身不支持將 XML 轉(zhuǎn)換為 JSON,也不支持將 JSON 轉(zhuǎn)換為 XML。但是,您可以使用其他庫來實現(xiàn)這些轉(zhuǎn)換,例如 Jackson 或 XStream。下面是如何使用這些庫進(jìn)行轉(zhuǎn)換的示例。

  1. 使用 Jackson 將 XML 轉(zhuǎn)換為 JSON:

首先,您需要添加 Jackson XML 和 JSON 依賴項到您的項目中。對于 Maven 項目,將以下依賴項添加到 pom.xml 文件中:

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
    <version>2.13.0</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.13.0</version>
</dependency>

然后,您可以使用以下代碼將 XML 轉(zhuǎn)換為 JSON 字符串:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;

import java.io.IOException;

public class XmlToJsonExample {
    public static void main(String[] args) throws IOException {
        String xml = "<root><element>value</element></root>";

        XmlMapper xmlMapper = new XmlMapper();
        ObjectMapper jsonMapper = new ObjectMapper();

        MyClass myObject = xmlMapper.readValue(xml, MyClass.class);
        String jsonString = jsonMapper.writeValueAsString(myObject);

        System.out.println(jsonString);
    }
}

class MyClass {
    private String element;

    // Getter and Setter methods
}
  1. 使用 Jackson 將 JSON 轉(zhuǎn)換為 XML:

同樣,您需要添加 Jackson XML 和 JSON 依賴項到您的項目中。然后,您可以使用以下代碼將 JSON 字符串轉(zhuǎn)換為 XML 字符串:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;

import java.io.IOException;

public class JsonToXmlExample {
    public static void main(String[] args) throws IOException {
        String json = "{\"element\":\"value\"}";

        ObjectMapper jsonMapper = new ObjectMapper();
        XmlMapper xmlMapper = new XmlMapper();

        MyClass myObject = jsonMapper.readValue(json, MyClass.class);
        String xmlString = xmlMapper.writeValueAsString(myObject);

        System.out.println(xmlString);
    }
}

class MyClass {
    private String element;

    // Getter and Setter methods
}

請注意,這些示例假設(shè)您已經(jīng)定義了一個與 XML 結(jié)構(gòu)匹配的 Java 類。您需要為 XML 中的每個元素創(chuàng)建一個相應(yīng)的 Java 類,并為每個元素提供 getter 和 setter 方法。

0