golang从http请求中读取xml格式的body,并转成json

文章目录

以下是在 Go 语言中从 HTTP 请求中读取 XML 格式的请求体,并将其转换为 JSON 的方法:

go 复制代码
package main

import (
    "encoding/json"
    "encoding/xml"
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
)

type XMLData struct {
    // 根据你的 XML 结构定义字段
    Field1 string `xml:"field1"`
    Field2 string `xml:"field2"`
}

func handleRequest(w http.ResponseWriter, r *http.Request) {
    if r.Method!= http.MethodPost {
        http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
        return
    }

    // 读取 XML 请求体
    body, err := ioutil.ReadAll(r.Body)
    if err!= nil {
        http.Error(w, "Error reading request body", http.StatusBadRequest)
        return
    }

    var xmlData XMLData
    err = xml.Unmarshal(body, &xmlData)
    if err!= nil {
        http.Error(w, "Error unmarshalling XML", http.StatusBadRequest)
        return
    }

    // 将 XML 数据转换为 JSON
    jsonData, err := json.Marshal(xmlData)
    if err!= nil {
        http.Error(w, "Error marshalling to JSON", http.StatusInternalServerError)
        return
    }

    w.Header().Set("Content-Type", "application/json")
    w.Write(jsonData)
}

func main() {
    http.HandleFunc("/convert", handleRequest)
    log.Fatal(http.ListenAndServe(":8080", nil))
}

在上述代码中:

  • 定义了一个结构体XMLData来表示 XML 的结构,你需要根据实际的 XML 结构修改这个结构体。
  • handleRequest函数处理 HTTP 请求。首先检查请求方法是否为 POST,然后读取请求体,使用xml.Unmarshal将 XML 数据解析到结构体中,最后使用json.Marshal将结构体转换为 JSON 格式并返回给客户端。

请注意,这只是一个简单的示例,实际应用中你可能需要处理更多的错误情况和不同的 XML 结构。

希望本文对你有所帮助!如果你有任何问题或建议,欢迎在评论区留言。

关注我看更多有意思的文章哦!👉👉

相关推荐
王码码20357 小时前
Go语言的测试:从单元测试到集成测试
后端·golang·go·接口
王码码20357 小时前
Go语言中的测试:从单元测试到集成测试
后端·golang·go·接口
嵌入式×边缘AI:打怪升级日志8 小时前
使用JsonRPC实现前后台
前端·后端
小码哥_常9 小时前
从0到1:Spring Boot 中WebSocket实战揭秘,开启实时通信新时代
后端
lolo大魔王9 小时前
Go语言的异常处理
开发语言·后端·golang
IT_陈寒11 小时前
Python多进程共享变量那个坑,我差点没爬出来
前端·人工智能·后端
码事漫谈11 小时前
2026软考高级·系统架构设计师备考指南
后端
AI茶水间管理员13 小时前
如何让LLM稳定输出 JSON 格式结果?
前端·人工智能·后端
其实是白羊13 小时前
我用 Vibe Coding 搓了一个 IDEA 插件,复制URI 再也不用手动拼了
后端·intellij idea
用户83562907805113 小时前
Python 操作 Word 文档节与页面设置
后端·python