为了账号安全,请及时绑定邮箱和手机立即绑定

Go 中将字符串转换为 json

Go 中将字符串转换为 json

Go
慕工程0101907 2023-07-31 15:45:34
我是 Go 新手,正在学习设置 http 服务器。我想做的是在我的 sql 数据库中返回 10 部电影的 json 输出。但结果输出不是 json 格式。我用在线json格式化程序检查了输出,输出是json格式的。我尝试了 json.Marshall 和 json.Encode,但两者都没有给出所需的结果。type movie_list struct {    Page int `json:"Page"`    Results []movie `json:"Results"`}type movie struct {    Id      int `json:"Id"`    Title   string `json:"Title"`    Language    string `json:"Language"`    Release_date string `json:"Release_date"`    Poster_path string `json:"Poster_path"`    Background_path string `json:"Background_path"`    Overview string `json:"Overview"`    Genre_ids string `json:"Genre_ids"`}rows,err:=db.Query("select * from movies limit 10")         if err!=nil{            fmt.Println(err)         }         var list movie_list         var tag movie         for rows.Next(){             err:=rows.Scan(&tag.Id,&tag.Title,&tag.Language,&tag.Release_date,&tag.Poster_path,&tag.Background_path,&tag.Overview,&tag.Genre_ids)             if err != nil {             fmt.Println(err)            }            list.Results = append(list.Results,tag)         }json.NewEncoder(w).Encode(list) 邮递员的输出 -格式化输出 -
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

问题是响应内容类型标头不是 application/json。通过在写入正文之前设置标题来修复。

w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(list)

如果应用程序未指定内容类型,则 net/http 服务器会调用 http.DetectConentType在响应标头中设置内容类型。该函数不检测 JSON,默认为 text/plain。


查看完整回答
反对 回复 2023-07-31
  • 1 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信