Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Go中使用字节片中的变量_Go - Fatal编程技术网

如何在Go中使用字节片中的变量

如何在Go中使用字节片中的变量,go,Go,这可能是个大问题,请耐心听我说 要在Go with some body中发送HTTP POST请求,我可以执行以下操作: var jsonStr = []byte(`{"someVar":"someValue"}`) req, err := http.NewRequest("POST", APIURL, bytes.NewBuffer(jsonStr)) 然而,我似乎不能用变量来代替“someValue”,比如: someValue := "SomeValue" var jsonStr = [

这可能是个大问题,请耐心听我说

要在Go with some body中发送HTTP POST请求,我可以执行以下操作:

var jsonStr = []byte(`{"someVar":"someValue"}`)
req, err := http.NewRequest("POST", APIURL, bytes.NewBuffer(jsonStr))
然而,我似乎不能用变量来代替“someValue”,比如:

someValue := "SomeValue"
var jsonStr = []byte(`{"someVar":someValue}`)

有人能给我指出正确的方向吗?

那是因为它是字符串文字。我建议尝试使用序列化来序列化您的类型

或者格式化字符串

someValue := "SomeValue"
var jsonStr = []byte(fmt.Sprintf(`{"someVar":"%v"}`, someValue))

您可能希望研究使用一个可以使用变量的映射或结构,然后对JSON进行封送/编码,而不是手动键入JSON。谢谢,这样做了。老实说,这感觉很奇怪,但我想这也是习惯的问题。如果某个值字符串包含“字符”,它将破坏JSON。
someValue := "SomeValue"
var jsonStr = []byte(fmt.Sprintf(`{"someVar":"%v"}`, someValue))