一尘不染

在golang中将地图转换为字符串

go

我正在尝试找到转换的最佳方法

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"

地图

m := map[string]string{
        "LOG_LEVEL": "x",
        "API_KEY": "y",
    }

阅读 196

收藏
2020-07-02

共1个答案

一尘不染

我了解您在代表一个地图条目的每一行上都需要一些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))

}

工作示例: 去游乐场

2020-07-02