mystruct := &JSONStruct{0, "hello"}
fmt.Println(mystruct)
c.Data["json"] = mystruct
c.ServeJSON()
按以上写法是通过的
但是
mystruct := JSONStruct{0, "hello"}
这样写也可以通过
到底哪种合理?
mystruct := &JSONStruct{0, "hello"}
fmt.Println(mystruct)
c.Data["json"] = mystruct
c.ServeJSON()
按以上写法是通过的
但是
mystruct := JSONStruct{0, "hello"}
这样写也可以通过
到底哪种合理?
7 回答5.3k 阅读
6 回答6.9k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答2k 阅读✓ 已解决
1 回答3.4k 阅读
2 回答2.2k 阅读
1 回答2.1k 阅读
我没有太理解你的问题, 你是想问 c.Data["json"] 是 JSONStruct的值和指针的区别吗, 为什么用指针和值都可以得到正确的输出?这个问题我建议你看 c.ServeJSON()的源码就明白了
实际这个方法是对json序列化和 http 响应的封装, 只是直接把 c.Data["json"] 传递给json组件了而已, json 内部会进行反射, 会自动处理指针类型的数据,和我们平时使用没有任何区别, 只要是 json组件可以序列化的数据都可以给 c.Data["json"] ,而 c.Data 是
map[interface{}]interface{}
类型的数据