Go+ JSON 编码和解码处理教程(5.4)
【摘要】 目录Go+ 概述正文导入包布尔类型编码整型编码字符串编码自定义结构体编码自定义结构体解码Go+ 概述Go+ 是一门融合工程开发的 Go、数据科学领域的 Python、编程教学领域的 Scratch,以 Python 之形结合 Go 之心,让工程师处理数据不需要学习新的开发语言,让初学者学习编程、开发作品的门槛更低的编程语言。正文Go+ 也提供了对 JSON 编码和解码的内置支持,包括与内置和...
-
目录
-
Go+ 概述
-
正文
- 导入包
- 布尔类型编码
- 整型编码
- 字符串编码
- 自定义结构体编码
- 自定义结构体解码
Go+ 概述
Go+ 是一门融合工程开发的 Go、数据科学领域的 Python、编程教学领域的 Scratch,以 Python 之形结合 Go 之心,让工程师处理数据不需要学习新的开发语言,让初学者学习编程、开发作品的门槛更低的编程语言。
正文
Go+ 也提供了对 JSON 编码和解码的内置支持,包括与内置和自定义数据类型之间的通信。接下来我们就来了解一下这部分的一些内容。
导入包
Go+ 在处理 JSON 编码和解码时,一般使用的工具库是 encoding/json 包,导入方式如下:
import (
"encoding/json"
)
布尔类型编码
对布尔类型变量进行 JSON 编码后,还是原来的值,示例代码如下:
import (
"encoding/json"
)
bool, _ := json.Marshal(true)
println(string(bool))
执行结果:
true
整型编码
对整型变量进行 JSON 编码后,还是原来的值,示例代码如下:
import (
"encoding/json"
)
intVar, _ := json.Marshal(1024)
println(string(intVar))
执行结果:
1024
字符串编码
对字符串变量进行 JSON 编码后,还是原来的值,示例代码如下:
import (
"encoding/json"
)
strVar, _ := json.Marshal("go+, hello")
println(string(strVar))
执行结果:
"go+, hello"
自定义结构体编码
还可以对自定义的结构体进行 JSON 编码,这在实际使用过程中是最常见的,示例代码如下:
import (
"encoding/json"
)
type info struct {
Page int `json:"page"`
Fruits []string `json:"fruits"`
}
info1 := &info{
Page: 110,
Fruits: []string{"apple", "peach", "pear"},
}
infoJson, _ := json.Marshal(info1)
println(string(infoJson))
执行结果:
{"page":110,"fruits":["apple","peach","pear"]}
自定义结构体解码
另外,也可以对自定义的结构体进行 JSON 解码,特别是在参数解析时使用最多,示例代码如下:
import (
"encoding/json"
)
type info struct {
Page int `json:"page"`
Fruits []string `json:"fruits"`
}
str := `{"page": 1, "fruits": ["apple", "peach"]}`
info1 := info{}
json.Unmarshal([]byte(str), &info1)
println("JSON 解码后的数据:", info1)
println("第二个水果是:", info1.Fruits[1])
执行结果:
JSON 解码后的数据: {1 [apple peach]}
第二个水果是: peach
作者简介:大家好,我是 Data-Mining(liuzhen007),是一位音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解,公众号:玩转音视频。同时也是 CSDN 博客专家、华为云社区云享专家、签约作者,欢迎关注我分享更多干货!
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)