遇到一个问题,需要用 go 请求 api,再返给前端,写结构体有些麻烦,前端可以解析 json
在 Go 语言中,没有像 Python 中的字典(dict)那样的动态类型来自动解析 JSON 数据。Go 是一种静态类型语言,因此需要提前定义一个结构体或映射来表示 JSON 数据的结构。
虽然没有像 Python 那样的动态解析,但你可以使用 map[string]interface{} 来部分模拟这种功能。这种方法允许你将 JSON 数据解析为一个映射(类似于 Python 中的字典),其中键是字符串,值可以是任何类型。
package main
import (
"encoding/json"
"fmt"
"github.com/go-resty/resty/v2"
)
func getResponseAsMap(url string) (map[string]interface{}, error) {
// 创建 Resty 客户端
client := resty.New()
// 发送 GET 请求
resp, err := client.R().
Get(url)
// 处理响应
if err != nil {
return nil, err
}
// 解析 JSON 响应为 map
var data map[string]interface{}
if err := json.Unmarshal(resp.Body(), &data); err != nil {
return nil, err
}
// 返回解析后的 map
return data, nil
}
func main() {
// 调用自定义函数并处理结果
url := "https://jsonplaceholder.typicode.com/posts/1" // 替换为你的实际 URL
responseData, err := getResponseAsMap(url)
if err != nil {
fmt.Println("Error:", err)
return
}
// 打印解析后的 map 数据
fmt.Printf("%+v\n", responseData)
}
原文地址:https://blog.csdn.net/nongcunqq/article/details/132161237
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。