上一篇golang读取json配置文件介绍了使用encoding/json
包来解析json文件,但是这种方法在面对结构复杂、字段较多的情况时,解析效率不是很高。上一篇中,我们在解析json文件时,需要提前在代码中定义好解析后对应的结构体,比较麻烦。而今天的主角jsonparser
不需要你了解载入文件的结构,允许你通过提供它们的路径来访问。它可以快速的提取json内容,比encoding/json
包的速度高出10倍左右。
jsonparser
之所以有如此快的速度,原因有如下几个方面:
- 它不依赖
encoding/json
,reflection
或者interface{}
,唯一依赖包是bytes
; - 在字节级别上操作json,提供指向原始数据结构的指针,无内存分配;
- 没有自动类型转化,默认情况下,所有内容都是字节切片,但是它提供了值类型,因此你可以自己进行转化
- 它不解析完整的内容,仅仅解析你指定的字段
通过下面的代码来了解下它的使用。
package main
import (
"github.com/buger/jsonparser"
"fmt"
)