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

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

介绍

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

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

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 字符串,我还是会强烈建议大家使用上这两个三方库,不仅会提升你的开发效率,还可以使你写的代码更加优雅,不妨试试吧。

推荐阅读:

Go 语言学习之基础数据类型

Go 语言学习之常量

参考资料:


目录
相关文章
|
5天前
|
JSON JavaScript 前端开发
JavaScript实现字符串转json对象的方法
JavaScript实现字符串转json对象的方法
|
13天前
|
Go
[golang]字符串拼接
[golang]字符串拼接
|
12天前
|
存储 程序员 编译器
Golang 中的字符串:常见错误和最佳实践
Golang 中的字符串:常见错误和最佳实践
|
5天前
|
监控 Serverless Go
Golang 开发函数计算问题之Go 语言中切片扩容时需要拷贝原数组中的数据如何解决
Golang 开发函数计算问题之Go 语言中切片扩容时需要拷贝原数组中的数据如何解决
|
27天前
|
测试技术 Shell Go
Golang质量生态建设问题之Go语言的单元测试的问题如何解决
Golang质量生态建设问题之Go语言的单元测试的问题如何解决
|
1月前
|
存储 JSON Java
Java对象转换为JSON字符串
在Java开发中,常需将数据对象转换为JSON存储,如使用Fastjson库。要将Java对象转为JSON,可调用`JSON.toJSONString(obj)`;反向转换则用`JSON.parseObject(str, Class)`。
|
1月前
|
JSON 数据格式
Unsupported Media Type,传入的字符串数据:这里应该是Json
Unsupported Media Type,传入的字符串数据:这里应该是Json
|
1月前
|
JSON 数据格式
Navicate数据报错之Bad Request,发送端口测试的时候,使用JSON字符串,而不是Text
Navicate数据报错之Bad Request,发送端口测试的时候,使用JSON字符串,而不是Text
|
1月前
|
JSON Java 数据格式
前后端数据交换,JSON基础语法和JSON数据和Java对象转换,最快的对象转换,JSON{““}字符串如何写User{id=1,username=‘zhangsan‘,password=‘123‘}
前后端数据交换,JSON基础语法和JSON数据和Java对象转换,最快的对象转换,JSON{““}字符串如何写User{id=1,username=‘zhangsan‘,password=‘123‘}
|
2月前
|
JSON 数据格式