Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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
单值上下文中的多值json.Marshal()_Json_Go - Fatal编程技术网

单值上下文中的多值json.Marshal()

单值上下文中的多值json.Marshal(),json,go,Json,Go,您可以看到以下代码: package main import ( "fmt" "encoding/json" ) func main() { map1 := map[string]map[string]interface{}{} map2 := map[string]interface{}{} map2["map2item"] = "map2item" map1["map2"] = map2 fmt.Println(string(jso

您可以看到以下代码:

package main

import (
    "fmt"
    "encoding/json"
)

func main() {
    map1 := map[string]map[string]interface{}{}
    map2 := map[string]interface{}{}
    map2["map2item"] = "map2item"
    map1["map2"] = map2
    fmt.Println(string(json.Marshal(map1)))
}
将返回此错误:

tmp/sandbox100532722/main.go:13:33: multiple-value json.Marshal() in single-value context.

如何解决此问题?

您尝试执行的字符串转换需要一个参数,但
json.Marshal
函数返回两个(
[]字节
错误
)。您需要存储第一个返回值,然后进行转换:

package main

import (
    "fmt"
    "encoding/json"
)

func main() {
    map1 := map[string]map[string]interface{}{}
    map2 := map[string]interface{}{}
    map2["map2item"] = "map2item"
    map1["map2"] = map2
    b, err := json.Marshal(map1)
    if err != nil {
        panic(err)
    }
    fmt.Println(string(b))
}