gpt4 book ai didi

json - Go BeeGo框架如何传递JSON响应?

转载 作者:IT王子 更新时间:2023-10-29 01:47:11 30 4
gpt4 key购买 nike

我正在使用 go 和 beego 构建微服务应用程序。我正在尝试将 JSON 响应从服务 A 传递到服务 B,如下所示:

func (u *ServiceController) GetAll() {
req := httplib.Get("http://localhost/api/1/services")
str, err := req.String()
// str = {"id":1, "name":"some service"}
if err != nil {
fmt.Println(err)
}
u.Data["json"] = str
u.ServeJSON()
}

但是,当我发送响应时,我实际上将 json 编码加倍:

"{\"id\":\"1\",\"name\":\"some service\"}"

最后,这是我想出的解决方案:

func (u *ServiceController) GetAll() {
req := httplib.Get("http://localhost/api/1/services")
str, err := req.String()
if err != nil {
fmt.Println(err)
}

strToByte := []byte(str)
u.Ctx.Output.Header("Content-Type", "application/json")
u.Ctx.Output.Body(strToByte)
}

最佳答案

试试这个:

func (u *ServiceController) GetAll() {
req := httplib.Get("http://localhost/api/1/services")
str, err := req.Bytes()
// str = {"id":1, "name":"some service"}
if err != nil {
fmt.Println(err)
}
u.Ctx.Output.Header("Content-Type", "text/plain;charset=UTF-8")
u.Ctx.ResponseWriter.Write(str)
}

如果你调用req.String(),它会将"编码成json字符串。我建议你使用[]byte通常处理数据。

关于json - Go BeeGo框架如何传递JSON响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47739398/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com