golang 操作用户post的json数据 其中json数据格式包含数组 字符串等其他类型
在Golang中,可以使用encoding/json包来操作用户POST的JSON数据。下面是一个示例代码,演示了如何处理包含数组、字符串和其他类型的JSON数据:
package main
import (
"encoding/json"
"fmt"
"log"
"net/http"
)
type User struct {
Name string `json:"name"`
Age int `json:"age"`
Emails []string `json:"emails"`
}
func handleRequest(w http.ResponseWriter, r *http.Request) {
// 解码JSON数据
var user User
err := json.NewDecoder(r.Body).Decode(&user)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
// 打印解码后的数据
fmt.Println("Name:", user.Name)
fmt.Println("Age:", user.Age)
fmt.Println("Emails:", user.Emails)
// 返回成功响应
w.WriteHeader(http.StatusOK)
w.Write([]byte("Success"))
}
func main() {
http.HandleFunc("/", handleRequest)
log.Fatal(http.ListenAndServe(":8080", nil))
}
在上面的示例中,我们定义了一个User结构体,其中包含了一个字符串类型的Name字段、一个整数类型的Age字段和一个字符串数组类型的Emails字段。json标签用于指定JSON数据中对应字段的名称。
handleRequest函数用于处理HTTP请求,其中我们使用json.NewDecoder来解码JSON数据,并将解码后的数据存储在user变量中。然后,我们打印出解码后的数据,并返回一个成功的响应。
你可以使用Postman或其他工具发送一个包含JSON数据的POST请求到http://localhost:8080/,然后在控制台上查看解码后的数据。
注意:在使用json.NewDecoder(r.Body).Decode(&user)解码JSON数据时,需要确保请求的Content-Type为application/json。
原文地址: https://www.cveoy.top/t/topic/hKIc 著作权归作者所有。请勿转载和采集!