golang利用json.Unmarshal转json为map、slice类型
利用json.Unmarshal转json为map类型package mainimport ("encoding/json""fmt")func main() {var jsonStr = `{"name": "WQ","age": 18,"phone": "15858585858"}`var m = make(map[string]string)if err := json.Unmarshal(
·
利用json.Unmarshal转json为map类型
package main
import (
"encoding/json"
"fmt"
)
func main() {
var jsonStr = `{
"name": "WQ",
"age": 18,
"phone": "15858585858"}` //key-value类型可以用struct/map接收
var m = make(map[string]string)
if err := json.Unmarshal([]byte(jsonStr), &m);err !=nil{
fmt.Errorf("err:%v",err)
}
fmt.Printf("map:%v\n",m)
for k,v :=range m{
fmt.Printf("map,k:%v v:%v\n",k,v)
}
var jsonStr2 = `["WQ","18","15858585858"]` //json中数组如果用Unmarshal解析的话对应切片数组,key-value则解析不到slice里面
var slice = make([]string,3)
if err := json.Unmarshal([]byte(jsonStr2), &slice);err !=nil{
fmt.Errorf("err:%v",err)
}
fmt.Printf("slice:%v\n",slice)
for k,v :=range slice{
fmt.Printf("slice,k:%v v:%v\n",k,v)
}
}
//总之Unmarshal接收容器可以是结构体、map、slice,json类型需要对应才,详见Unmarshal源码注释
//map:map[age: name:WQ phone:15858585858]
//map,k:age v:
//map,k:phone v:15858585858
//map,k:name v:WQ
//slice:[WQ 18 15858585858]
//slice,k:0 v:WQ
//slice,k:1 v:18
//slice,k:2 v:15858585858
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)