Go的目标是希望提升现有编程语言对程序库等依赖性(dependency)的管理,这些软件元素会被应用程序反复调用。由于存在并行编程模式,因此这一语言也被设计用来解决多处理器的任务。
很多人喜欢Go语言Google也对Go寄予厚望。其设计是让软件充分发挥多核心处理器同步多工的优点,并可解决面向对象程序设计的麻烦。它具有现代的程序语言特色,如垃圾回收,帮助程序设计师处理琐碎但重要的内存管理问题。Go的速度也非常快,几乎和C或C++程序一样快,且能够快速制作程序。
兄弟连教育区块链学院是由兄弟连教育携手微软区块链领域全球最具价值专家尹成及其带领的清华水木未名教学团队所组成,学习周期为五个半月,内容涵盖Go语言、区块链密码学、分布式编程、共识算法、公链开发、智能合约与DAPP开发、区块链系统框架开发超级账本与区块链3.0EOS等内容,现在兄弟连Go语言培训就为大家讲解一下Go语言JSON读写2:JSON反序列化
概述
导入依赖
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)
}
}
更多区块链视频教程/源码/课件/学习资料-企鹅QUN:591229276
有疑问加站长微信联系(非本文作者)