千家信息网

Go语言怎么利用Unmarshal解析json字符串

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要介绍"Go语言怎么利用Unmarshal解析json字符串"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Go语言怎么利用Unmarshal解析js
千家信息网最后更新 2025年01月16日Go语言怎么利用Unmarshal解析json字符串

这篇文章主要介绍"Go语言怎么利用Unmarshal解析json字符串"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Go语言怎么利用Unmarshal解析json字符串"文章能帮助大家解决问题。

简单的解析例子:

首先还是从官方文档中的例子:

package mainimport (    "fmt"    "encoding/json")type Animal struct {    Name  string    Order string}func main() {    var jsonBlob = []byte(`[        {"Name": "Platypus", "Order": "Monotremata"},        {"Name": "Quoll",    "Order": "Dasyuromorphia"}    ]`)    var animals []Animal        err := json.Unmarshal(jsonBlob, &animals)    if err != nil {        fmt.Println("error:", err)    }    fmt.Printf("%+v", animals)}

输出:

[{Name:Platypus Order:Monotremata} {Name:Quoll Order:Dasyuromorphia}]

简单进行修改,修改为:

package mainimport (    "fmt"    "encoding/json")type Animal struct {    Name  string    Order string}func main() {    var jsonBlob = []byte(`{"Name": "Platypus", "Order": "Monotremata"}`)    var animals Animal    err := json.Unmarshal(jsonBlob, &animals)    if err != nil {        fmt.Println("error:", err)    }    fmt.Printf("%+v", animals)}

输出:

{Name:Platypus Order:Monotremata}

还是之前的例子:

解析这样的一个json字符串:

{    "first fruit":    {        "describe":"an apple",        "icon":"appleIcon",        "name":"apple"    },    "second fruit":    {        "describe":"an orange",        "icon":"orangeIcon",        "name":"orange"    },    "three fruit array":    [        "eat 0",        "eat 1",        "eat 2",        "eat 3",        "eat 4"    ]}

go代码:

package mainimport (    "fmt"    "encoding/json")type Fruit struct {    Describe string `json:"describe"`    Icon     string `json:"icon"`    Name     string `json:"name"`}type FruitGroup struct {    FirstFruit  *Fruit `json:"first fruit"`  //指针,指向引用对象;如果不用指针,只是值复制    SecondFruit *Fruit `json:"second fruit"` //指针,指向引用对象;如果不用指针,只是值复制    THreeFruitArray []string `json:"three fruit array"`}func main() {    var jsonBlob = []byte(`{    "first fruit": {        "describe": "an apple",        "icon": "appleIcon",        "name": "apple"    },    "second fruit": {        "describe": "an orange",        "icon": "appleIcon",        "name": "orange"    },    "three fruit array": [        "eat 0",        "eat 1",        "eat 2",        "eat 3"    ]}`)    var fruitGroup FruitGroup        err := json.Unmarshal(jsonBlob, &fruitGroup)    if err != nil {        fmt.Println("error:", err)    }    fmt.Printf("%+v\n", fruitGroup)    fmt.Printf("%+v\n", fruitGroup.FirstFruit)    fmt.Printf("%+v\n", fruitGroup.SecondFruit)}

运行结果:

{FirstFruit:0xc00006c5a0 SecondFruit:0xc00006c5d0 THreeFruitArray:[eat 0 eat 1 eat 2 eat 3]}
&{Describe:an apple Icon:appleIcon Name:apple}
&{Describe:an orange Icon:appleIcon Name:orange}

关于"Go语言怎么利用Unmarshal解析json字符串"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

0