相关文章推荐
长情的单车  ·  假冒商品(不带测试购买)提交发票一直不通过·  2 周前    · 
打篮球的杨桃  ·  保利阅江台-福州保利阅江台楼盘详情-福州房天下·  11 月前    · 
光明磊落的黄豆  ·  非洲_中华人民共和国外交部·  1 年前    · 
坐怀不乱的饺子  ·  山东胜越石化工程建设有限公司_百度百科·  1 年前    · 
小眼睛的苹果  ·  c# tcpclient send and ...·  2 年前    · 
Code  ›  Golang 语言怎么高效读写 JSON 字符串?开发者社区
golang
https://cloud.tencent.com/developer/article/1874623
重感情的苦瓜
3 年前
作者头像
frank.
0 篇文章

Golang 语言怎么高效读写 JSON 字符串?

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > Golang语言开发栈 > Golang 语言怎么高效读写 JSON 字符串?

Golang 语言怎么高效读写 JSON 字符串?

作者头像
frank.
发布 于 2021-09-08 10:37:53
1.1K 0
发布 于 2021-09-08 10:37:53
举报

01

介绍

在 Golang 语言程序开发中,经常会遇到读写 JSON 字符串的场景,一般我们是先使用 Golang 标准库 encoding/json 解码,读写操作后,再编码。过程比较繁琐,代码也不优雅。

本文我们介绍两个三方库 sjson 和 gjson,我们可以使用这两个三方库高效读写操作 JSON 字符串。

02

sjson

所谓 sjson 就是 set json 的缩写,使用 sjson 可以通过指定 JSON 的 Key 高效设置 Value。

安装:

$ go get -u github.com/tidwall/sjson

示例代码:

// sjson set a value
func set(str string) {
 s, err := sjson.Set(str, "Email", "frank@qq.com")
 if err != nil {
  fmt.Println(err)
 fmt.Println(s)

阅读上面这段代码,我们使用 sjson 包的 Set 方法,给定 JSON 字符串,Key 和 Value,高效设置 JSON 的值,不再需要先使用 encoding/json 包解码 JSON 字符串,设置完值,然后再编码为 JSON 字符串。这种方式不仅高效,而且代码更加简洁。

更多关于 sjson 的使用,建议感兴趣的读者朋友们阅读官方文档。

03

gjson

所谓 gjson 就是 get json 的缩写,使用 gjson 可以通过指定 JSON 的 Key 高效获取 Value。

安装:

$ go get -u github.com/tidwall/gjson

示例代码:

// gjson get a value
func get(str string) {
 rst := gjson.Get(str, "Name")
 fmt.Println(rst)

阅读上面这段代码,我们使用 gjson 包的 Get 方法,给定 JSON 字符串和 Key,高效获取 JSON 的值,不再需要先使用 encoing/json 包解码 JSON 字符串,然后再获取指定的 Value。这种方式不仅高效,而且代码更加简洁。

此外,gjson 包还提供了很多方便的方法供我们使用。

更多关于 gjson 的使用,建议感兴趣的读者朋友们阅读官方文档。

04

总结

本文我们介绍了两个高效读写操作 JSON 字符串的三方库,sjson 和 gjson。虽然我不建议大家在标准库可以满足需求的情况下,引入太多的三方库,但是,如果读者朋友们在 Golang 语言程序开发中,也经常需要操作 JSON 字符串,我还是会强烈建议大家使用上这两个三方库,不仅会提升你的开发效率,还可以使你写的代码更加优雅,不妨试试吧。

推荐阅读:

Golang 官方推荐使用的 Redis 客户端 redigo

 
推荐文章
长情的单车  ·  假冒商品(不带测试购买)提交发票一直不通过
2 周前
打篮球的杨桃  ·  保利阅江台-福州保利阅江台楼盘详情-福州房天下
11 月前
光明磊落的黄豆  ·  非洲_中华人民共和国外交部
1 年前
坐怀不乱的饺子  ·  山东胜越石化工程建设有限公司_百度百科
1 年前
小眼睛的苹果  ·  c# tcpclient send and receive data-掘金
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号