如何将接口映射的映射转换为字符串

sur*_*dra 4 go

我是 go lang 的新手,我有一种变量类型,如下所示:

type ResultData map[string]map[string][]interface{}
Run Code Online (Sandbox Code Playgroud)

当我接收到这个变量中的数据时,如何在 Go 中将整个数据转换为单个字符串?

Eli*_*sky 6

你可以使用类似的东西Sprintf

func main() {
    d1 := map[string][]interface{}{
        "a": []interface{}{20, "hello"},
        "b": []interface{}{100}}
    d2 := map[string][]interface{}{
        "x": []interface{}{"str", 10, 20},
    }

    m := make(map[string]map[string][]interface{})
    m["d1"] = d1
    m["d2"] = d2

    s := fmt.Sprintf("%v", m)
    fmt.Println(s)
}
Run Code Online (Sandbox Code Playgroud)

或者您也可以使用json模块来转换为 JSON 字符串json.Marshal。如果您背后的实际运行时类型interface{}可以编组为 JSON,json.Marshal则将自行解决。

b, _ := json.Marshal(m)
fmt.Println(string(b))
Run Code Online (Sandbox Code Playgroud)