欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java如何接收XML格式參數(shù)并轉(zhuǎn)換為JSON

 更新時(shí)間:2025年03月27日 10:50:51   作者:我真的不想做程序員  
在 Java 應(yīng)用程序中,處理 XML 數(shù)據(jù)并將其轉(zhuǎn)換為 JSON 格式是很常見的任務(wù),這篇文章為大家整理了一下具體的實(shí)現(xiàn)方法,希望對(duì)大家有所幫助

在 Java 應(yīng)用程序中,處理 XML 數(shù)據(jù)并將其轉(zhuǎn)換為 JSON 格式是很常見的任務(wù)。以下是一個(gè)示例代碼,展示如何使用 Java 完成這一操作:

前期準(zhǔn)備

1.確保你的項(xiàng)目中包含以下依賴:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.13.0</version>
</dependency>
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20210307</version>
</dependency>
<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.1</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jaxb</groupId>
    <artifactId>jaxb-runtime</artifactId>
    <version>2.3.1</version>
</dependency>

2.創(chuàng)建一個(gè) Java 類來表示 XML 數(shù)據(jù)結(jié)構(gòu):

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.List;

@XmlRootElement(name = "data")
public class Data {
    private String name;
    private int age;
    private List<String> hobbies;

    // Getters and setters

    @XmlElement(name = "name")
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @XmlElement(name = "age")
    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @XmlElement(name = "hobbies")
    public List<String> getHobbies() {
        return hobbies;
    }

    public void setHobbies(List<String> hobbies) {
        this.hobbies = hobbies;
    }
}

接收 XML 參數(shù)

1.使用 JAXB 解析 XML 數(shù)據(jù):

import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import java.io.StringReader;

public class XMLParser {
    public static Data parseXML(String xml) throws Exception {
        JAXBContext context = JAXBContext.newInstance(Data.class);
        Unmarshaller unmarshaller = context.createUnmarshaller();
        StringReader reader = new StringReader(xml);
        Data data = (Data) unmarshaller.unmarshal(reader);
        return data;
    }
}

2.在你的控制器中接收 XML 參數(shù):

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class DataController {
    @PostMapping("/receive-xml")
    public ResponseEntity<String> receiveXML(@RequestBody String xml) {
        try {
            Data data = XMLParser.parseXML(xml);
            String json = JSONConverter.convertToJSON(data);
            return new ResponseEntity<>(json, HttpStatus.OK);
        } catch (Exception e) {
            return new ResponseEntity<>("Error processing XML", HttpStatus.BAD_REQUEST);
        }
    }
}

將 XML 轉(zhuǎn)換為 JSON

使用 Jackson 將 Java 對(duì)象轉(zhuǎn)換為 JSON 字符串:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.json.JSONObject;

public class JSONConverter {
    public static String convertToJSON(Data data) throws Exception {
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
        return objectMapper.writeValueAsString(data);
    }
}

測(cè)試代碼

假設(shè)你使用的是 Spring Boot 項(xiàng)目,可以通過以下方式測(cè)試:

啟動(dòng)你的 Spring Boot 應(yīng)用程序。

使用工具如 Postman 或 curl 發(fā)送一個(gè) POST 請(qǐng)求到 /receive-xml,內(nèi)容類型為 application/xml,并附帶以下 XML 數(shù)據(jù):

<data>
    <name>John</name>
    <age>30</age>
    <hobbies>
        <hobby>Reading</hobby>
        <hobby>Traveling</hobby>
        <hobby>Cooking</hobby>
    </hobbies>
</data>

你應(yīng)該會(huì)收到以下 JSON 響應(yīng):

{
  "name" : "John",
  "age" : 30,
  "hobbies" : [ "Reading", "Traveling", "Cooking" ]
}

總結(jié)

通過以上代碼,我們展示了如何在 Java 中接收 XML 格式的參數(shù),并將其轉(zhuǎn)換為 JSON 格式。這個(gè)過程包括以下步驟:

  • 使用 JAXB 解析 XML 數(shù)據(jù)并綁定到 Java 對(duì)象。
  • 使用 Jackson 將 Java 對(duì)象轉(zhuǎn)換為 JSON 字符串。
  • 通過 REST API 接收 XML 請(qǐng)求并返回 JSON 響應(yīng)。

以上就是Java如何接收XML格式參數(shù)并轉(zhuǎn)換為JSON的詳細(xì)內(nèi)容,更多關(guān)于Java接收XML并轉(zhuǎn)為JSON的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 淺談log4j 不打印異常堆棧

    淺談log4j 不打印異常堆棧

    這篇文章主要介紹了淺談log4j 不打印異常堆棧,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • Java回調(diào)函數(shù)與觀察者模式實(shí)例代碼

    Java回調(diào)函數(shù)與觀察者模式實(shí)例代碼

    這篇文章主要介紹了Java回調(diào)函數(shù)與觀察者模式實(shí)例代碼,簡單介紹了使用觀察者模式的場(chǎng)景,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • Springboot RestTemplate設(shè)置超時(shí)時(shí)間的方法(Spring boot 版本)

    Springboot RestTemplate設(shè)置超時(shí)時(shí)間的方法(Spring boot 

    這篇文章主要介紹了Springboot RestTemplate設(shè)置超時(shí)時(shí)間的方法,包括Spring boot 版本<=1.3和Spring boot 版本>=1.4,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • Spring Boot實(shí)戰(zhàn)之?dāng)?shù)據(jù)庫操作的示例代碼

    Spring Boot實(shí)戰(zhàn)之?dāng)?shù)據(jù)庫操作的示例代碼

    本篇文章主要介紹了Spring Boot實(shí)戰(zhàn)之?dāng)?shù)據(jù)庫操作的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • springCloud項(xiàng)目搭建流程步驟分解

    springCloud項(xiàng)目搭建流程步驟分解

    SpringCloud 作為當(dāng)下最為流行的微服務(wù)框架,也越來越多的人去學(xué)習(xí)和使用這個(gè)框架。下面,我將帶大家簡單地認(rèn)識(shí)一下 SpringCloud 框架,以及如何來搭建一個(gè) SpringCloud 項(xiàng)目環(huán)境的教程
    2022-05-05
  • java發(fā)送kafka事務(wù)消息的實(shí)現(xiàn)方法

    java發(fā)送kafka事務(wù)消息的實(shí)現(xiàn)方法

    本文主要介紹了java發(fā)送kafka事務(wù)消息的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Java中JDBC的使用教程詳解

    Java中JDBC的使用教程詳解

    Java語言操作數(shù)據(jù)庫?JDBC本質(zhì):其實(shí)是官方(sun公司)定義的一套操作所有關(guān)系型數(shù)據(jù)庫的規(guī)則,即接口。本文講解了JDBC的使用方法,需要的可以參考一下
    2022-06-06
  • Java多線程案例之定時(shí)器詳解

    Java多線程案例之定時(shí)器詳解

    定時(shí)器是一種實(shí)際開發(fā)中非常常用的組件,?類似于一個(gè)?“鬧鐘”,?達(dá)到一個(gè)設(shè)定的時(shí)間之后,?就執(zhí)行某個(gè)指定好的代碼。本文主要來和大家聊聊定時(shí)器的原理與使用,需要的可以參考一下
    2023-01-01
  • Mybatis-Spring連接mysql 8.0配置步驟出錯(cuò)的解決方法

    Mybatis-Spring連接mysql 8.0配置步驟出錯(cuò)的解決方法

    這篇文章主要為大家詳細(xì)介紹了Mybatis-Spring連接mysql 8.0配置步驟出錯(cuò)的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • java使用WatchService監(jiān)控文件夾示例

    java使用WatchService監(jiān)控文件夾示例

    本篇文章主要介紹了java使用WatchService監(jiān)控文件夾示例的資料,這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。
    2017-02-02

最新評(píng)論