兄弟连Go语言培训之JSON读写2:JSON反序列化

XDLGo · 2018-09-18 10:53:15 · 611 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2018-09-18 10:53:15 的主题,其中的信息可能已经有所发展或是发生改变。

  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


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

611 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传