我的结构没有编组到json中
我在Mac OS X 10.8.2上使用Go
1.0.3,并且正在尝试使用该json软件包,试图将结构编组为json,但是我一直得到一个空的{}json对象。
该err值是零,所以没有什么根据的是错误的json.Marshal功能,并且该结构是正确的。为什么会这样呢?
package mainimport (
  "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
}
回答:
您必须将要封送的字段公开。像这样:
type Address struct {  Street string
  Extended string
  City string
  State string
  Zip string
}
err是nil因为所有的出口领域,在这种情况下有没有,是正确编组。
工作示例:https :
//play.golang.org/p/9NH9Bog8_C6
查看文档http://godoc.org/encoding/json/#Marshal
以上是 我的结构没有编组到json中 的全部内容, 来源链接: utcz.com/qa/408149.html



