我试图使用json
包将Go结构转换为JSON,但我得到的全部是{}
。我确定这是非常明显的,但我没有看到它。将Go结构转换为JSON
package main
import (
"fmt"
"encoding/json"
)
type User struct {
name string
}
func main() {
user := &User{name:"Frank"}
b, err := json.Marshal(user)
if err != nil {
fmt.Printf("Error: %s", err)
return;
}
fmt.Println(string(b))
}
然后,当我尝试运行它,我得到这个:
$ 6g test.go && 6l -o test test.6 && ./test
{}
请注意,您可以在struct字段定义的末尾添加'\'json:“name”\''以保留输出名称。 – Dustin
我明白了。我有点喜欢这种语言,但我认为一些语法元素走到了尽头。如果一个结构成员的名字决定了行为,那么这就错了。 – magiconair
那么,名称决定行为可以辩论,如果它的好或不好:)但它确定可以很容易地知道,如果一个字段导出或不,而不必检查其他地方。 – Olof