广告
返回顶部
首页 > 资讯 > 后端开发 > GO >Go语言JSON解析器gjson使用方法详解
  • 751
分享到

Go语言JSON解析器gjson使用方法详解

Go 解析器gjsonGo JSON解析器 2022-12-08 20:12:39 751人浏览 泡泡鱼
摘要

目录gJSON安装使用gjson GJSON 是一个Go包,它提供了一种从json文档中获取值的快速简单的方法。它具有单行检索、点符号路径、迭代和解析 json 行等功能。 还可以查

gjson

GJSON 是一个Go包,它提供了一种从json文档中获取值的快速简单的方法。它具有单行检索、点符号路径、迭代和解析 json 行等功能。

还可以查看SJSON以修改 json,以及JJ命令行工具

本自述文件是如何使用 GJSON 的快速概述,有关更多信息,请查看GJSON 语法。

GitHub 的地址在这里。

安装

安装gjson,使用的是go传统的安装方法:

go install github.com/tidwall/gjson@latest

在文件的目录下执行:

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

这样就在目录下,可以使用gjson了。

使用

获取相应的数值。

获取指定路径的搜索 json。路径采用点语法,例如“name.last”或“age”。当找到该值时,它会立即返回。

package main
import "github.com/tidwall/gjson"
const json = `{"name":{"first":"Janet","last":"Prichard"},"age":47}`
func main() {
	value := gjson.Get(json, "name.last")
	println(value.String())
}

这将打印:

Prichard

这个跟我们使用的传统的json解析还有一点区别,gjson不仅帮我们解析了json的数据,还帮我们建立了快速查找的通道。

路径语法

路径是由点分隔的一系列键。密钥可能包含特殊的通配符“*”和“?”。要访问数组值,请使用索引作为键。要获取数组中的元素数量或访问子路径,请使用“#”字符。点和通配符可以用“\”转义。

{
  "name": {"first": "Tom", "last": "Anderson"},
  "age":37,
  "children": ["Sara","Alex","Jack"],
  "fav.movie": "Deer Hunter",
  "friends": [
    {"first": "Dale", "last": "Murphy", "age": 44, "nets": ["ig", "fb", "tw"]},
    {"first": "Roger", "last": "Craig", "age": 68, "nets": ["fb", "tw"]},
    {"first": "Jane", "last": "Murphy", "age": 47, "nets": ["ig", "tw"]}
  ]
}

"name.last"          >> "Anderson"
"age"                >> 37
"children"           >> ["Sara","Alex","Jack"]
"children.#"         >> 3
"children.1"         >> "Alex"
"child*.2"           >> "Jack"
"c?ildren.0"         >> "Sara"
"fav\.movie"         >> "Deer Hunter"
"friends.#.first"    >> ["Dale","Roger","Jane"]
"friends.1.last"     >> "Craig"

您还可以使用 查询数组中的第一个匹配项#(…),或使用 查找所有匹配项#(…)#。查询支持==, !=, <, <=, >,>= 比较运算符和简单的模式匹配%(like) 和!% (not like) 运算符。

friends.#(last=="Murphy").first    >> "Dale"
friends.#(last=="Murphy")#.first   >> ["Dale","Jane"]
friends.#(age>45)#.last            >> ["Craig","Murphy"]
friends.#(first%"D*").last         >> "Murphy"
friends.#(first!%"D*").last        >> "Craig"
friends.#(nets.#(=="fb"))#.first   >> ["Dale","Roger"]

这样我们查找起来就非常方便了。

到此这篇关于Go语言JSON解析器gjson使用方法详解的文章就介绍到这了,更多相关Go JSON解析器gjson内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: Go语言JSON解析器gjson使用方法详解

本文链接: https://www.lsjlt.com/news/174410.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Go语言JSON解析器gjson使用方法详解
    目录gjson安装使用gjson GJSON 是一个Go包,它提供了一种从json文档中获取值的快速简单的方法。它具有单行检索、点符号路径、迭代和解析 json 行等功能。 还可以查...
    99+
    2022-12-08
    Go 解析器gjson Go JSON解析器
  • Go 语言 json解析框架与 gjson 详解
    目录1. 快速使用2. Get() 返回的 Result 结构体3. 键路径4. json 数组遍历5. 其他前言: JSON 解析是我们不可避免的常见问题,在 Go 语言中,我们可...
    99+
    2022-11-11
  • Go语言JSON解析器gjson如何使用
    今天小编给大家分享一下Go语言JSON解析器gjson如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。gjsonGJS...
    99+
    2023-07-04
  • Go语言实现JSON解析的方法详解
    目录1、json序列化2、Json反序列化为结构体对象3、Json反序列化为map类型4、Tag的使用在日常项目中,使用Json格式进行数据封装是比较常见的操作,看一下golang怎...
    99+
    2022-11-13
  • Go语言实现JSON解析的神器详解
    目录前言JSON解析实践标准库encoding/json第三方库json-iterator收集到开源项目jinzaigo/xutil中总结前言 php转go是大趋势,越来越多公司的p...
    99+
    2023-01-29
    Go语言解析JSON Go 解析JSON Go语言 JSON
  • 详解go语言json的使用技巧
    本文整理了一部分我们平时在项目中经常遇到的关于go语言JSON数据与结构体之间相互转换的问题及解决办法。 基本的序列化 首先我们来看一下Go语言中json.Marshal()...
    99+
    2022-06-07
    json的使用 JSON GO 技巧
  • C语言实现手写JSON解析的方法详解
    目录什么是JSONJSON支持的数据类型JSON语法规则JSON的解析JSON基本语法编写解析器头文件实现文件什么是JSON JSON(JavaScript Object Notat...
    99+
    2022-11-13
  • Go语言中rune方法使用详解
    Go语言中rune方法如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 1.byte类型 byt...
    99+
    2023-03-19
    Go语言rune方法 Go语言rune
  • Go语言HttpRouter路由使用方法详解
    HttpRouter是一个轻量级但却非常高效的multiplexer。手册: https://godoc.org/github.com/julienschmidt/httproute...
    99+
    2022-11-13
  • Go语言学习之JSON编码解析与使用
    目录1.Map转JSON2. Json转Map3.结构体转JSON3.1 无字段标签3.2 有字段标签3.3 匿名字段4.JSON转结构体5.切片转JSON6.JSON转切片1.Ma...
    99+
    2023-02-14
    Go语言JSON解析 Go语言JSON使用 Go JSON
  • Go语言中函数的使用方法详解
    目录函数特点函数知识点函数的使用函数定义函数的参数函数的返回值函数的变量作用域函数的递归调用函数的可变参数函数的闭包函数的 defer 语句注意函数特点 函数可以有多个返回值。可以将...
    99+
    2023-05-18
    Go语言函数使用方法 Go语言函数使用 Go语言函数
  • Go语言中interface语法与使用详解
    目录初识interface基本语法其他注意事项interface底层实现ifaceeface侵入式与非侵入式的理解interface的应用场景类型转换实现多态功能补充:interfa...
    99+
    2022-11-13
  • Go语言os包用法详解
    目录os 包中的常用函数os/exec 执行外部命令os/user 获取当前用户信息os/signal 信号处理Go语言的 os 包中提供了操作系统函数的接口,是一个比较重要的包。顾...
    99+
    2023-05-14
    Go语言os包 Go os包使用
  • Go语言指针用法详解
    结合这个例子分析一下 结果: 结合以往C语言的基础,画了一张图来解释为什么会有上面这些值的出现。先查看下Go中的这两个运算符是啥吧。 ①对于所有带a的结果 var a int ...
    99+
    2022-11-13
  • Go语言实现定时器的方法详解
    目录TimerTiker本文主要介绍了Go语言实现定时器的两个方法,包括一次性定时器(Timer)和周期性定时器(Ticker),一次性定时器:newTimer()创建一个能够往当前...
    99+
    2022-12-20
    Go语言实现定时器 Go语言定时器 Go 定时器
  • Go语言的Channel遍历方法详解
    先来看看基本的定义: channel是Go语言中的一个核心类型,可以把它看成管道。并发核心单元通过它就可以发送或者接收数据进行通讯,这在一定程度上又进一步降低了编程的难度。 c...
    99+
    2022-06-07
    Channel GO 方法 go语言
  • Go语言怎么利用Unmarshal解析json字符串
    这篇文章主要介绍“Go语言怎么利用Unmarshal解析json字符串”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Go语言怎么利用Unmarshal解析json字符串”文章能帮助大家解决问题。简单...
    99+
    2023-06-30
  • Go语言中sync.Cond使用详解
    目录sync.Cond 可以用来干什么? 与 Sync.Mutex 的区别 sync.Cond 使用场景 sync.Cond sync.Cond 有哪些方法 NewCond 创建实例...
    99+
    2022-11-12
  • go语言中decimal的用法详解
    目录1. 精度丢失的case2. decimal的应用场景3. 使用decimal4. decimal其他实用的场景4.1 获取结果的整数部分4.2 小数点后填充4.3 比较数字的大...
    99+
    2023-03-07
    go语言decimal用法 go语言decimal
  • Go语言的type func()用法详解
    目录一、前置基础1. go 函数基础2. 函数签名二、Go语言的type func()用法 | type func() 自定义函数类型1. golang通过type定义函数类型一、前...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作