我在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
}
err
是nil
因为所有的出口领域,在这种情况下有没有,是正确编组。
工作示例:https :
//play.golang.org/p/9NH9Bog8_C6
查看文档http://godoc.org/encoding/json/#Marshal
我关注了 json 根据给出的答案,我尝试了以下 我得到一个空数组,有如下错误。有什么建议吗? json:无法将数组解组为map[string]*json.RawMessage类型的Go值
问题内容: 我想将以下JSON解组到结构中: 我试图以各种方式修改,但是结构始终为空: 输出: 过去使用的JSON没有括号,因此我怀疑问题与它们有关。 有人可以帮忙吗? https://play.golang.org/p/pymKbOqcM- 问题答案: 发生这种情况是因为其他包()无法访问私有字段(即使具有反射)。在私有语言中,私有字段是以小写字母开头的字段。要解决此问题,请使您的结构包含公共字
问题内容: 我正在一个项目中使用JSON作为创建Java对象的配置框架。这也是我来自CF / PHP / JS等方面多年经验的第一个专业Java项目。 在将JSON转换为Java时,我能找到的所有资源都基于以下想法:您必须先在Java中手动构建对象,即POJO,然后使用JSON进行填充。 作为网络语言的资深人士,我对此想法感到窒息。我发现编译后的语言起着不同的作用,但是我认为从命令行到机器语言的共
问题内容: 我是初学者,尝试解组以下json字符串 这是结构 这是功能 该函数正在返回 问题答案: 您的JSON输入不是的一部分,因为还有另一个JSON对象包装器,并且值属于属性。 更深入地讲,是一个JSON数组,其中的对象持有不同的键,其值可由表示。 因此,要完全描述您的JSON,您需要某种“动态”类型。例如,地图就是这种动态类型。 因此,您的原始JSON输入可以使用类型完全建模。这是一张地图,
我是go初学者,正在尝试解组下面的json字符串 下面是这个结构 这是函数 函数正在返回
问题内容: http://play.golang.org/p/f6ilWnWTjm 我正在尝试解码以下字符串,但仅获取空值。 如何在Go中解码嵌套的JSON结构? 我想将以下内容转换为地图数据结构。 问题答案: 在Go中使用嵌套结构来匹配JSON中的嵌套结构。 这是一个如何处理示例JSON的示例: 游乐场链接 您还可以对内部结构使用匿名类型: 游乐场链接 或外部和内部结构: 游乐场链接 如果您不知