Golang Go语言初学,请教一个问题
package main
import (
“encoding/json”
“fmt”
)
type A struct {
a int json:"a"
}
type B struct {
b int json:"b"
a []A json:"a"
}
func main() {
var a A
var b B
a.a = 1
b.b = 2
//b.a = make([]A, 2)
b.a = append(b.a, A{2})
b.a = append(b.a, A{3})
s1, err := json.Marshal(&a)
if err != nil {
fmt.Println(err)
} else {
fmt.Println("1", a)
fmt.Println("1", string(s1))
}
s2, _ := json.Marshal(b)
fmt.Println("2", b)
fmt.Println("2", string(s2))
}
得到的结果是:
1 {1}
1 {}
2 {2 [{2} {3}]}
2 {}
为何 json.Marshal 后是空啊
Golang Go语言初学,请教一个问题
更多关于Golang Go语言初学,请教一个问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
为什么你们都喜欢把 error 忽略了,然后问为什么会出问题?
更多关于Golang Go语言初学,请教一个问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
这个问题是因为 struct 里要 json 化的变量需要大写
导出变量才会被序列化
首字母大写的变量是导出变量
记住了,不大写是无法外部使用的。
1 楼才是正解
谢谢各位大大,首字母大写。记住了。
不是首字母大写 是要序列化的结构体要是能导出的
话说相对于可导出这个问题来说,check error 才是关键吧
还是先把官网的教程认真看一遍吧
非常感谢各位!
用 markdown 啊,发主题时右下角有选择
谢谢啊
1 楼是正解
你们好好看看代码, 人家怎么没有 check error 了? 小写不导出会报错么? … 真的是服气 说 1L 正解的人…
你好,很高兴你对Go语言(Golang)产生了兴趣!作为初学者,你可能会遇到很多有趣且富有挑战性的内容。以下是一些针对初学者常见问题的建议,希望对你有所帮助:
-
基础语法:首先,确保你掌握了Go语言的基础语法,包括变量声明、数据类型、控制结构(如循环和条件语句)以及函数定义。你可以通过Go语言的官方文档或一些在线教程来学习这些内容。
-
并发编程:Go语言以其强大的并发处理能力而闻名。了解goroutines和channel是掌握Go语言并发编程的关键。试着编写一些简单的并发程序,以加深对这部分内容的理解。
-
标准库:Go语言的标准库非常丰富,涵盖了网络编程、文件操作、文本处理等多个方面。熟悉这些标准库将大大提高你的编程效率。
-
实践项目:理论知识的学习需要与实践相结合。你可以尝试编写一些简单的项目,如Web服务器、文件管理器等,以检验你的学习成果。
-
社区资源:加入Go语言的社区,如GitHub上的Go项目、Stack Overflow上的Go板块以及线下的技术交流会等,将为你提供更多的学习资源和交流机会。
最后,记得保持耐心和好奇心,不断挑战自己。随着你对Go语言的深入理解,你会发现越来越多的乐趣和可能性。祝你学习顺利!