我正在尝试找到转换的最佳方法
map[string]string键入字符串。我尝试使用marshall转换为json以保留格式,然后转换回字符串,但这未成功。更具体地说,我正在尝试将包含键和值的映射转换为字符串以容纳https://www.nomadproject.io/docs/job-specification/template.html#environment-variables https://github.com/hashicorp /nomad/blob/master/nomad/structs/structs.go#L3647
例如,最后一个字符串应该像
LOG_LEVEL="x"
API_KEY="y"
Run Code Online (Sandbox Code Playgroud)
地图
m := map[string]string{
"LOG_LEVEL": "x",
"API_KEY": "y",
}
Run Code Online (Sandbox Code Playgroud)
Elv*_*ins 21
您可以使用fmt.Sprint将地图转换为字符串:
import (
"fmt"
)
func main() {
m := map[string]string{
"a": "b",
"c": "d",
}
log.Println("Map: " + fmt.Sprint(m))
}
Run Code Online (Sandbox Code Playgroud)
或者fmt.Sprintf:
import (
"fmt"
)
func main() {
m := map[string]string{
"a": "b",
"c": "d",
}
log.Println(fmt.Sprintf("Map: %v", m))
}
Run Code Online (Sandbox Code Playgroud)
我了解您在代表一个地图条目的每一行上需要一些key = value对。
PS,您刚刚更新了问题,我看到您仍然需要在值周围加上引号,因此引号就在这里
package main
import (
"bytes"
"fmt"
)
func createKeyValuePairs(m map[string]string) string {
b := new(bytes.Buffer)
for key, value := range m {
fmt.Fprintf(b, "%s=\"%s\"\n", key, value)
}
return b.String()
}
func main() {
m := map[string]string{
"LOG_LEVEL": "DEBUG",
"API_KEY": "12345678-1234-1234-1234-1234-123456789abc",
}
println(createKeyValuePairs(m))
}
Run Code Online (Sandbox Code Playgroud)
工作示例: 去游乐场
| 归档时间: |
|
| 查看次数: |
18592 次 |
| 最近记录: |