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 结构。

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

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

相关推荐
狗头大军之江苏分军2 小时前
《潮水漫过十七岁》开学了
后端
苏三说技术3 小时前
如何看待GPT-6在UP主众测中碾压夺冠?它是现在最强大模型吗?
后端
mldong3 小时前
一份 JSON,一条能跑的审批流:把报销流程送上工作流引擎
后端·架构
wno7043 小时前
Spring Boot WebFlux增删改查
java·spring boot·后端
Captaincc3 小时前
AI用量v0.1.11更新发布 新增 jusage doctor 诊断指令 托盘展示token 和余额 新增 AutoClaw 支持
前端·后端·vibecoding
aramae4 小时前
模拟实现strlen()函数 (C语言)
c语言·开发语言·后端
参.商.4 小时前
【Day 53】76. 最小覆盖子串
leetcode·golang
IT_陈寒5 小时前
Python的GIL把我坑惨了,多线程跑得比单线程还慢
前端·人工智能·后端
分支预测失败5 小时前
RISC-V 时间子系统深度专题:mtime 访问路径、SBI 定时器与 Linux tickless 协同
后端
65岁退休Coder5 小时前
PI Agent 开发一个生产级 Harness
后端·node.js·agent