mapj1 := make(map[string]interface{})
mapj1["name"] = "名1"
mapj1["config"] = `{"is_ok","yes"}`
b1, _ := json.Marshal(mapj1)
fmt.Println(string(b1))
结果:{"config":"{\"is_ok\",\"yes\"}","name":"名1"}
我要实现效果:
{"name":"名1","config":{"is_ok","yes"}}
请问我是哪里没有做对?
有疑问加站长微信联系(非本文作者)

改成下面这种形式吧,你可以研究
json.Marshal
原理用什么符号毫无意义 输出结果都是一样得 这个我以前尝试过得,用·拼接省事而已
嗯谢谢
讳疾忌医
简单点来说,是你还没了解json结构吧,值可为字符串和对象等等类型,你用map定义config的值是字符串,而你则想要config内的对象
mapObj := make(map[string]interface{}) mapObj["name"] = "wuzai" mapObj["info"] = map[string]interface{}{ "age": 18, "sex": "男", } str, err := json.Marshal(mapObj) if err != nil { fmt.Println(err) } fmt.Println(string(str))
这样就行啦