~~~
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"}}
请问我是哪里没有做对?
~~~
```golang
//第一种方式
mapj1 := make(map[string]interface{})
mapj1["name"] = "名1"
mapj1["config"] = json.RawMessage(`{"is_ok":"yes"}`) //将上面的,换成:这才是json体
b1, _ := json.Marshal(mapj1)
fmt.Println(string(b1))
//第二种方式
//创建一个结构体
type Config struct {
Ok string `json:"is_ok"`
}
func main() {
mapj1 := make(map[string]interface{})
mapj1["name"] = "名1"
//mapj1["config"] = json.RawMessage(`{"is_ok":"yes"}`)
mapj1["connfig"] = Config{Ok: "yes"}
b1, _ := json.Marshal(mapj1)
fmt.Println(string(b1))
}
```
#9
更多评论
~~~
看map未转换前好像数据没问题;
map[id:17 name:testing config:{"is_ok":"yes"}]
好像感觉 json.Marshal是这个函数方法会帮以上自动转换为 字符串 并且+ 反斜杠等
~~~
#1
改成下面这种形式吧,你可以研究`json.Marshal`原理
```go
mapj1["config"] = json.RawMessage(`{"is_ok","yes"}`)
```
#2