GO-JSON读写2-JSON反序列化

本文介绍如何使用Go语言处理JSON数据,包括将JSON字符串反序列化为结构体、map及切片,并展示了具体的实现代码。

导入依赖

import (
    "encoding/json"
    "fmt"
)

定义结构体

type Human struct {
    Name    string
    Age     int
    Sex     bool
    Hobbies []string
}

定义数据

var jsonStr,jsonStr2 string
var zqd Human
var theMap map[string]interface{}
var theSlice []map[string]interface{}

数据初始化

func init() {
    jsonStr = "{\"age\":20,\"hobbies\":[\"质检\",\"维护流水线\",\"打饭\"],\"name\":\"张全蛋\",\"sex\":true}"
    jsonStr2 = "[{\"age\":20,\"hobbies\":[\"质检\",\"维护流水线\",\"打饭\"],\"name\":\"张全蛋\",\"sex\":true},{\"age\":23,\"hobbies\":[\"破坏\",\"维护流水线\",\"打人\"],\"name\":\"穆铁柱\",\"sex\":false}]"
}

反序列化为结构体

func main21() {
    err := json.Unmarshal([]byte(jsonStr), &zqd)
    if err!=nil{
        fmt.Println("反序列化失败,err=",err)
    }else {
        fmt.Printf("反序列化成功:%#v\n",zqd)
    }
}

反序列化为map

func main22() {
    err := json.Unmarshal([]byte(jsonStr), &theMap)
    if err!=nil{
        fmt.Println("反序列化失败,err=",err)
    }else {
        fmt.Printf("反序列化成功:%#v\n", theMap)
    }
}

反序列化为切片

func main23() {
    err := json.Unmarshal([]byte(jsonStr2), &theSlice)
    if err!=nil{
        fmt.Println("反序列化失败,err=",err)
    }else {
        fmt.Printf("反序列化成功:%v\n", theSlice)
    }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值