JSON

Go json包简单教程

字号+ 作者:H5之家 来源:H5之家 2017-06-24 12:06 我要评论( )

Go生成json和解json数据都很简单,通过官方的“encoding/json”包,调用json.Marshal( )生成数据,调用json.Unmarshal( )或json.NewDecoder.Decode( )解析数据。

  • 首页
  • 文章
  • Go json包简单教程 吃一堑消化不良 · · 865 次点击 · · 开始浏览    

    这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

    Go生成json和解json数据都很简单,通过官方的“encoding/json”包,调用json.Marshal( )生成数据,调用json.Unmarshal( )或json.NewDecoder.Decode( )解析数据。

    package main import ( "encoding/json" "fmt" "io" "os" "strings" ) type Order struct { Name string `json:name` OrderItem []Item `json:item` OrderRefund []Refund `json:refund` } type Item struct { Name string `json:name` Oid int `json:oid` } type Refund struct { Name string `json:name` Item int `json:item` Content string `json:content` Imgs string `json:imgs` Status string `json:status` } // json转结构体 func jsonToStruct() { const jsonStream = ` {"Id": 11, "Name": "a"} {"Id": 22, "Name": "b"} {"Id": 33, "Name": "c"} {"Id": 44, "Name": "d"} {"Id": 55, "Name": "e"} ` dec := json.NewDecoder(strings.NewReader(jsonStream)) for { var m Message err := dec.Decode(&m) if err == io.EOF { break } else if err != nil { fmt.Println(err) } else { fmt.Printf("%d: %s\n", m.Id, m.Name) } } } // 结构体转json func structToJson() { var m Order m.Name = "10010" m.OrderItem = append(m.OrderItem, Item{Ono: "Shanghai_Hourse", Oid: 1}) m.OrderItem = append(m.OrderItem, Item{Ono: "Beijing_Hourse", Oid: 2}) for i := 1; i < 6; i++ { str := []byte("Things") str = strconv.AppendInt(str, int64(i), 10) orderi := Item{Ono: string(str), Oid: i} m.OrderItem = append(m.OrderItem, orderi) } bytes, _ := json.Marshal(m) fmt.Printf("json:m,%s\n", bytes) } func main() { jsonToStruct() structToJson() }

    本文来自:开源中国博客

    感谢作者:吃一堑消化不良

    查看原文:Go json包简单教程

    865 次点击  

    0 回复

    暂无回复

    添加一条新回复 (您需要 后才能回复 没有账号 ?)

    提交

    用户登录

    Go生成json和解json数据都很简单,通过官方的“encoding/json”包,调用json.Marshal( )生成数据,调用json.Unmarshal( )或json.NewDecoder.Decode( )解析数据。

    package main import ( "encoding/json" "fmt" "io" "os" "strings" ) type Order struct { Name string `json:name` OrderItem []Item `json:item` OrderRefund []Refund `json:refund` } type Item struct { Name string `json:name` Oid int `json:oid` } type Refund struct { Name string `json:name` Item int `json:item` Content string `json:content` Imgs string `json:imgs` Status string `json:status` } // json转结构体 func jsonToStruct() { const jsonStream = ` {"Id": 11, "Name": "a"} {"Id": 22, "Name": "b"} {"Id": 33, "Name": "c"} {"Id": 44, "Name": "d"} {"Id": 55, "Name": "e"} ` dec := json.NewDecoder(strings.NewReader(jsonStream)) for { var m Message err := dec.Decode(&m) if err == io.EOF { break } else if err != nil { fmt.Println(err) } else { fmt.Printf("%d: %s\n", m.Id, m.Name) } } } // 结构体转json func structToJson() { var m Order m.Name = "10010" m.OrderItem = append(m.OrderItem, Item{Ono: "Shanghai_Hourse", Oid: 1}) m.OrderItem = append(m.OrderItem, Item{Ono: "Beijing_Hourse", Oid: 2}) for i := 1; i < 6; i++ { str := []byte("Things") str = strconv.AppendInt(str, int64(i), 10) orderi := Item{Ono: string(str), Oid: i} m.OrderItem = append(m.OrderItem, orderi) } bytes, _ := json.Marshal(m) fmt.Printf("json:m,%s\n", bytes) } func main() { jsonToStruct() structToJson() }

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • Golang 中使用 JSON 的一些小技巧

      Golang 中使用 JSON 的一些小技巧

      2017-06-22 15:03

    • Mongo数据库简介

      Mongo数据库简介

      2017-06-13 14:02

    • 使用JSON的Android身份验证

      使用JSON的Android身份验证

      2017-06-06 09:32

    • Django 数据迁移

      Django 数据迁移

      2017-05-23 13:03

    网友点评