我的结构没有编组到json中

我在Mac OS X 10.8.2上使用Go

1.0.3,并且正在尝试使用该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

}

回答:

您必须将要封送的字段公开。像这样:

type Address struct {

Street string

Extended string

City string

State string

Zip string

}

errnil因为所有的出口领域,在这种情况下有没有,是正确编组。

工作示例:https :

//play.golang.org/p/9NH9Bog8_C6

查看文档http://godoc.org/encoding/json/#Marshal

以上是 我的结构没有编组到json中 的全部内容, 来源链接: utcz.com/qa/408149.html

回到顶部