go语言中的json与map相互转换实现

go语言中的json与map相互转换实现

主要是引入 "encoding/json" 包;用到的也就是其中的两个函数json.Marshal和json.Unmarshal。

1、json.Marshal

#函数定义位于GOROOT or GOPATH的/src/encoding/json/encode.go 中 func Marshal(v interface{}) ([]byte, error) { e := newEncodeState() err := e.marshal(v, encOpts{escapeHTML: true}) if err != nil { return nil, err } buf := append([]byte(nil), e.Bytes()...) encodeStatePool.Put(e) return buf, nil }

2、json.Unmarshal

#函数定义位于GOROOT or GOPATH的/src/encoding/json/decode.go 中 func Unmarshal(data []byte, v interface{}) error { // Check for well-formedness. // Avoids filling out half a data structure // before discovering a JSON syntax error. var d decodeState err := checkValid(data, &d.scan) if err != nil { return err } d.init(data) return d.unmarshal(v) } #输入的数据类型是[]byte,string类型的话要转成[]byte. str1 := "hello" data := []byte(str1) // 将字符串转为[]byte类型

可见其输入数据的类型是[]byte。对于string类型的数据要转成[]byte类型才可以。

// 当前程序的包名 package main // 导入其它的包 import ( "encoding/json" "fmt" ) func main() { map2json2map() } func map2json2map() { map1 := make(map[string]interface{}) map1["1"] = "hello" map1["2"] = "world" //return []byte str, err := json.Marshal(map1) if err != nil { fmt.Println(err) } fmt.Println("map to json", string(str)) //json([]byte) to map map2 := make(map[string]interface{}) err = json.Unmarshal(str, &map2) if err != nil { fmt.Println(err) } fmt.Println("json to map ", map2) fmt.Println("The value of key1 is", map2["1"]) }

到此这篇关于go语言中的json与map相互转换实现的文章就介绍到这了,更多相关go json与map相互转换内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    电脑硬盘csgo凭空消失|csgo突然消失

    电脑硬盘csgo凭空消失|csgo突然消失,,1. csgo突然消失可能是系统出现卡顿,刷新一下重启试试2. csgo地图突然消失方法如下:1、在电脑中启动cs

    csgo参数设置|csgo怎么保存

    csgo参数设置|csgo怎么保存,,csgo怎么保存第一步下载csgo的官方版本。然后再下载一个5e对战平台,PS:5e的账号和csgo的账号不是一个账号。第

    aigo无线硬盘连电脑|aigo优盘连接手机

    aigo无线硬盘连电脑|aigo优盘连接手机,,1. aigo优盘连接手机不管是爱国者U盘还是其他的U盘,要导入华为手机的话,首先需要有一个转接头,一头插

    csgo高手快捷键|csgo快捷键指令

    csgo高手快捷键|csgo快捷键指令,,1. csgo快捷键指令反恐精英全球攻势游戏中,死亡竞赛的回合时间60分钟:mp_roundtime 60,休闲/竞技模式的每局

    aigo电脑主机系统重启|csgo重启电脑

    aigo电脑主机系统重启|csgo重启电脑,,csgo重启电脑如果重启成功应该是不需要,相反就需重新安装csgo重启电脑重连不上直接打开游戏,通过游戏

    HACKMAP快捷键截图|hackmap自动拾取

    HACKMAP快捷键截图|hackmap自动拾取,,hackmap自动拾取暗黑破坏神0除去必做的通关剧情任务外,还有大量奖励丰富但对游戏整体进程没太大影响

    csgo电脑等级|csgo电脑等级指令

    csgo电脑等级|csgo电脑等级指令,,csgo电脑等级指令如图:竞技匹配等级另外还有每打一局都加经验的那个等级是满级为40,满了之后可兑换赛季纪

    arcmap快捷键设置|arcmap画线快捷键

    arcmap快捷键设置|arcmap画线快捷键,,1. arcmap画线快捷键ps、ai:ctrl+z2. arcmap画线先停掉arcgis license manager 服务,然后再在任务管理

    csgo设置准星|csgo设置准星大小

    csgo设置准星|csgo设置准星大小,,csgo设置准星大小csgo怎么设置准星方法:1.打开CSGO游戏,打开创意工坊,查找crashz' Crosshair Generator v2