微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

golang json 转 map 切片 结构体

目录

json转map

json转切片

json转结构体

注意点


转json使用的是json_Marshal.也就是序列化的过程,那么反序列的函数json.Unmarshal()

json转map

 

/**
json转map
*/
func main3() {
	jsonStr := `{"name":"咔咔","age":20,"address":["fangkang.top","blog.fangkang.top"]}`
	mMap := make(map[string]interface{})
	err := json.Unmarshal([]byte(jsonStr),&mMap)
	if err != nil {
		fmt.Println("反序列化失败")
	} else {
		// map[address:[fangkang.top blog.fangkang.top] age:20 name:咔咔]
		fmt.Println(mMap)
	}
}

json转切片

这里有一个注意点那就是切片最后一个没有“,” 这里需要注意一

func main() {
	jsonStr := `[
				{"name":"咔咔","blog.fangkang.top"]},{"name":"咔咔","blog.fangkang.top"]}
	]`
	mSlice := make([]map[string]interface{},0)
	err := json.Unmarshal([]byte(jsonStr),&mSlice)
	fmt.Println(err)
	if err != nil {
		fmt.Println("反序列化失败")
	} else {
		// [map[address:[fangkang.top blog.fangkang.top] age:20 name:咔咔] map[address:[fangkang.top blog.fangkang.top] age:20 name:咔咔] map[address:[fangkang.top blog.fangkang.top] age:20 name:咔咔]]
		fmt.Println(mSlice)
	}
}

json转结构体

 

type Persons struct {
	Name    string
	Age     int
	Address []string
}

/**
json转结构体
*/
func main() {
	jsonStr := `{"name":"咔咔","blog.fangkang.top"]}`
	k := Persons{}
	err := json.Unmarshal([]byte(jsonStr),&k)
	if err != nil {
		fmt.Println("反序列化失败")
	} else {
		fmt.Println(k)
	}
}

注意点

  • 在json转任何类型时都是传的指针
  • 使用json_Unmarshil来转json
  • json转切片注意每个值后边的逗号
  • json转结构体时注意结构体的属性必须是开放的,也就是首字符必须大写

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐