我是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_msg
在Printf
类型函数中string
用作格式字符串,仅将其用作格式字符串([]byte
和string
是不同的类型。尽管可以将它们彼此转换)。写入字节片的正确方法是指定格式字符串:
fmt.Fprintf(WRITER_OBJ, "%s", json_msg)
这将打印[]byte
Unicode内容。在Fprintf / Printf中,不应将变量用作格式字符串。我认为这不会像C语言那样有问题。但是,如果您的JSON中包含“%”,则可能会引起问题。
- 3 回答
- 0 关注
- 489 浏览
添加回答
举报
0/150
提交
取消