Go处理json数据

 

son数据格式

参见json数据格式说明

如果没操作过json数据,建议先看下上面的文章,有助于理解本文后面的内容。

Go json包

Marshal():Go数据对象 -> json数据
UnMarshal():Json数据 -> Go数据对象

1 2 func Marshal(v interface{}) ([]byte, error) func Unmarshal(data []byte, v interface{}) error

构建json数据

Marshal()和MarshalIndent()函数可以将数据封装成json数据。

  • struct、slice、array、map都可以转换成json
  • struct转换成json的时候,只有字段首字母大写的才会被转换
  • map转换的时候,key必须为string
  • 封装的时候,如果是指针,会追踪指针指向的对象进行封装

例如:

有一个struct结构:

1 2 3 4 5 type Post struct {     Id      int     Content string     Author  string }

这个结构表示博客文章类型,有文章ID,文章内容,文章的提交作者。这没什么可说的,唯一需要指明的是:它是一个struct,struct可以封装(编码)成JSON数据

要将这段struct数据转换成json,只需使用Marshal()即可。如下:

1 2 3 4 5 post := &Post{1, "Hello World", "userA"} b, err := json.Marshal(post) if err != nil {     fmt.Println(nil) }

Marshal()返回的是一个[]byte类型,现在变量b就已经存储了一段[]byte类型的json数据,可以输出它:


                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信