我在Mac OS X 10.8.2上使用Go 1.0.3,並且正在試驗json
包,試圖將一個結構編組爲json,但我一直得到一個空的{}
json目的。我的結構不編組到json
err
值爲零,所以根據json.Marshal
函數沒有任何錯誤,並且結構是正確的。這是爲什麼發生?
package main
import (
"encoding/json"
"fmt"
)
type Address struct {
street string
extended string
city string
state string
zip string
}
type Name struct {
first string
middle string
last string
}
type Person struct {
name Name
age int
address Address
phone string
}
func main() {
myname := Name{"Alfred", "H", "Eigenface"}
myaddr := Address{"42 Place Rd", "Unit 2i", "Placeton", "ST", "00921"}
me := Person{myname, 24, myaddr, "000 555-0001"}
b, err := json.Marshal(me)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(b)) // err is nil, but b is empty, why?
fmt.Println("\n")
fmt.Println(me) // me is as expected, full of data
}
那是它,我掩蓋了「每個_exported_結構體字段」行。謝謝。 – tlehman 2013-03-16 17:21:49
感謝您指出「公衆」。 – 2017-11-14 14:25:27