golang encoding/json

复制代码
 1 package main
 2 
 3 import (
 4     "bytes"
 5     "encoding/json"
 6     "fmt"
 7 )
 8 
 9 type ColorGroup struct {
10     ID     int
11     Name   string
12     Colors []string
13 }
14 
15 func main() {
16 
17     //---------------Marshal
18     group := ColorGroup{
19         ID:     1,
20         Name:   "Reds",
21         Colors: []string{"Crimson", "Red", "Ruby", "Maroon"},
22     }
23     b, err := json.Marshal(group)
24     if err != nil {
25         fmt.Println("error:", err)
26     }
27     //os.Stdout.Write(b)
28     fmt.Println(string(b[:]))
29 
30     //---------------Unmarshal
31     var jsonBlob = []byte(`[
32             {"ID":1,"Name":"Reds1","Colors":["Crimson","Red1","Ruby1","Maroon1"]},
33             {"ID":2,"Name":"Reds2","Colors":["Crimson","Red2","Ruby2","Maroon2"]},
34             {"ID":3,"Name":"Reds3","Colors":["Crimson","Red3","Ruby3","Maroon3"]}
35         ]`)
36 
37     var animals []ColorGroup
38     error := json.Unmarshal(jsonBlob, &animals)
39     if error != nil {
40         fmt.Println("error:", error)
41     }
42 
43     //fmt.Printf("%+v", animals)
44     //fmt.Println(animals)
45     for i, x := range animals {
46         fmt.Println(i, x)
47 
48     }
49     //---------------Indent
50     dst := new(bytes.Buffer)
51     json.Indent(dst, jsonBlob, "##", "**")
52     fmt.Println(dst)
53 }
复制代码

 

posted on   rojas  阅读(423)  评论(0编辑  收藏  举报

编辑推荐:
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
阅读排行:
· 后端思维之高并发处理方案
· 千万级大表的优化技巧
· 在 VS Code 中,一键安装 MCP Server!
· 想让你多爱自己一些的开源计时器
· 10年+ .NET Coder 心语 ── 继承的思维:从思维模式到架构设计的深度解析
< 2025年4月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10

统计

点击右上角即可分享
微信分享提示