程序笔记   发布时间:2022-07-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Golang json的反序列化大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

介绍

  json反序列化是指将json字符串反序列化成对应的数据类型(比如结构体、map、切片)的操作

1.反序列换结构体

package main

import (
    "encoding/json"
    "fmt"
)

//定义一个结构体
type Monster struct {
    Name     String
    Age      int
    Birthday String
    Sal      float64
    Skill    String
}

//将json字符串反序列化成struct
func unmarshalStruct() {
    str := "{"Name":"牛魔王","Age":500,"Birthday":"2021-11-11","Sal":80000,"Skill":"牛魔拳"}"
    //定义一个Monster结构体的实例
    var monster Monster
    err := json.Unmarshal([]byte(str), &@H_569_8@monster)
    if err != nil {
        fmt.Printf("unmarshal err=%v", err)
    }
    fmt.Printf("反序列化后 monster=%v", monster)
}

func main() {
    //演示结构体反序列化
    unmarshalStruct()
}

Golang json的反序列化

2.反序列化Map

package main

import (
    "encoding/json"
    "fmt"
)

//将json反序列化成map
func unmarshalMap() {
    str := "{"address":"洪崖洞","age":30,"name":"红孩儿"}"
    //定义一个map
    var a map[String]interface{}
    //反序列化
    //注意:反序列化map,不需要make,因为make操作被封装到Unmarshal函数
    err := json.Unmarshal([]byte(str), &a)
    if err != nil {

        fmt.Printf("unmarshal err=%vn", err)
    }
    fmt.Printf("反序列化后 a=%vn", a)
}

func main() {
    unmarshalMap()
}

Golang json的反序列化

 

 3.反序列化slice

package main

import (
    "encoding/json"
    "fmt"
)

//将json反序列化成切片
func unmarshalSlice() {
    str := "[{"address":"beijiang","age":7,"name":"jack"},{"address":["shanghai","xiaweiyi"],"age":20,"name":"tom"}]"

    //定义一个slice
    var slice []map[String]interface{}
    //反序列化,不需要make,因为make操作被封装到Unmarshal函数
    err := json.Unmarshal([]byte(str), &slicE)
    if err != nil {
        fmt.Printf("unmarshal err=%vn", err)
    }
    fmt.Printf("反序列化后 slice=%vn", slicE)
}

func main() {
    unmarshalSlice()
}

Golang json的反序列化

 

大佬总结

以上是大佬教程为你收集整理的Golang json的反序列化全部内容,希望文章能够帮你解决Golang json的反序列化所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。