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

如何在Go中打印出JSON

如何在Go中打印出JSON

Go
www说 2021-04-28 13:18:05
我是Go的新手,在弄清楚如何打印出我创建的JSON时遇到了麻烦。我正在使用“ encoding / json”,并且正在返回一个[] byte。但是,当我打印出来时,我得到:cannot use json_msg (type []byte) as type string in function argument收到此消息后,我尝试将[] byte数组转换为字符串或空接口。但是我似乎无法使其正常工作。有任何想法吗?相关代码如下:type Message struct {    Id int    Name string}for _, row := range rows {    m := Message{row.Int(0), row.Str(1)}    json_msg, err := json.Marshal(m)    if err == nil {        panic(err)    }//if            //tried below to print out a interface, didn't work either    //var f interface{}    //err = json.Unmarshal(json_msg, &f)    fmt.Fprintf(c.ResponseWriter, json_msg)}//for
查看完整描述

3 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

json_msgPrintf类型函数中string用作格式字符串,仅将其用作格式字符串([]bytestring是不同的类型。尽管可以将它们彼此转换)。写入字节片的正确方法是指定格式字符串:

fmt.Fprintf(WRITER_OBJ, "%s", json_msg)

这将打印[]byteUnicode内容。在Fprintf / Printf中,不应将变量用作格式字符串。我认为这不会像C语言那样有问题。但是,如果您的JSON中包含“%”,则可能会引起问题。


查看完整回答
反对 回复 2021-05-31
  • 3 回答
  • 0 关注
  • 489 浏览
慕课专栏
更多

添加回答

举报

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