Q
围棋在JSON
3
A
回答
4
为了表示该类型具有值“空”它必须是一个指针。问题不是你不能使用null,而是一个字符串不能有这个值。这是我在操场上做的一个简单例子。 https://play.golang.org/p/SXO5sBl2mR
package main
import "fmt"
import "encoding/json"
type Test struct {
A *string
B *string
}
func main() {
s := "Something"
t := Test{A:&s, B:nil}
b, err := json.Marshal(t)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(b))
}
由于DaveC使用指针制定者动初始化有点更麻烦提到的,但你可以使用相同类型的结构我有以上的;声明一个字符串,使用&
该字符串在复合文字中。
+0
感谢您的评论并回答@evanmcdonnal – Chris
2
你将不得不使用*string
代替,并创建一个辅助函数,使其更容易,东西线沿线的:
func main() {
chiefTitles := []*string{sP("CEO"), sP("CFO"), nil, sP("CMO")}
b, _ := json.Marshal(JobTitles{chiefTitles})
fmt.Println(string(b))
}
type JobTitles struct {
Titles []*string `json:"titles"`
}
func sP(s string) *string {
return &s
}
+0
谢谢你的时间和帮助,这很有道理! – Chris
相关问题
- 1. 代表围棋JSON政策
- 2. 格式JSON在围棋压痕
- 3. “网”在围棋
- 4. 在围棋
- 5. 围棋
- 6. 围棋
- 7. 围棋
- 8. 围棋
- 9. 围棋
- 10. 围棋
- 11. 不能在围棋
- 12. 围棋 - JSON-RPC - “太多的冒号”
- 13. strings.Split围棋
- 14. 与围棋
- 15. 实现围棋
- 16. 对于围棋
- 17. 错误围棋
- 18. 解组围棋
- 19. 拆封围棋
- 20. 从围棋
- 21. unsafe.Pointer为[]围棋
- 22. 解析XML围棋
- 23. 围棋“这个” -keyword
- 24. 追加到围棋
- 25. ListenSocket ClientSocket的围棋
- 26. Accesing的MongoDB从围棋
- 27. 围棋找不到包
- 28. 安装围棋语言
- 29. 围棋的WebSockets数据gopherjs
- 30. 楼宇围棋应用
在进入一个'string'不能'nil'(*不*'null')。 'Titles [] * string'会为你工作吗? (通过文字初始化会更难一些)。 –
你不能使用'null',因为Go中的值是'nil',并且如果对于一个字符串,你不能使用它,它必须是一个字符串指针。 – evanmcdonnal
我改变了标题。对不起我的无知 - 不要对Go社区不敬!你能举一个如何初始化这个例子吗? – Chris