首页/新闻资讯/正文详情

jsongrep查询语法完整清单:10个正则路径运算符让你精通JSON搜索

发布时间:2026/11/4 6:29:25 来源:云帆数科 栏目:资讯中心
jsongrep查询语法完整清单:10个正则路径运算符让你精通JSON搜索
【免费下载链接】jsongrepA path query language for JSON, YAML, TOML, and other serialization formats.项目地址https://gitcode.com/gh_mirrors/js/jsongrep点击查看免费下载jsongrep 是一个用 Rust 编写的命令行工具和库专门用于在 JSON、YAML、TOML 等文档中快速执行路径查询path query。它的查询语言复用了正则表达式的设计思路——把 JSON 文档看作一棵树用路径上的正则描述你想匹配的位置。只需掌握下面 10 个核心运算符你就能写出不限深度的复杂 JSON 搜索。为什么 jsongrep 的查询像正则表达式JSON 文档本质上是一棵树对象和数组层层嵌套边由字段名或数组下标标记。jsongrep 让你用正则式运算符描述路径集合而不是像jq那样描述如何转换数据**.name # 在任意深度的嵌套对象中找 name users[*].email # 匹配 users 数组里每个元素的 email (error|warn).* # error 或 warn 下的任意一层字段查询会先编译为 NFA非确定有限自动机再确定化为 DFA确定有限自动机执行因此搜索速度非常快。相关实现可以看 src/query/nfa.rs、src/query/dfa.rs 和 src/query/parser.rs。10 个正则路径运算符完整清单#运算符示例含义1顺序拼接foo.bar.baz依次经过foo→bar→baz2字段访问foo/foo bar匹配指定字段含空格需加引号3数组下标[0]、[1]匹配数组中的特定位置4数组切片[1:3]、[3:]、[:2]匹配一段下标结束位置不包含5数组通配符[*]匹配数组的所有元素6字段通配符*匹配任意一层字段名7选择并集year \| category匹配多个字段之一8可选foo?.barfoo可有可无9重复Kleene 星foo*前一步重复零次或多次10递归下降**匹配零层或多层任意字段所有运算符都可以通过括号任意嵌套分组比如foo.(bar|baz).qux匹配foo.bar.qux或foo.baz.qux。完整文法定义见 src/query/grammar/query.pest。1. 顺序拼接按路径逐层深入最基础的写法字段之间用.连接jg name.first person.json # 输出 name.first: John2. 字段访问支持带空格的字段名普通字段直接写名称字段名含空格等保留字符时用双引号包裹jg first name.value data.json3. 数组下标精确定位下标从 0 开始字段后可连续追加多个下标如items[0][1]jg hobbies[1] person.json # hobbies.[1]: # yoga4. 数组切片只取一段数据写法与 Python 切片一致结束下标不包含[1:3]第 2 到第 4 个元素[3:]从第 4 个开始到末尾[:2]前 2 个元素5. 数组通配符[*]展开所有元素这是最常用的运算符之一取出数组中每个元素echo {users: [{name: Alice}, {name: Bob}]} | jg users[*].name # users.[0].name: # Alice # users.[1].name: # Bob6. 字段通配符*任意一层字段注意*只匹配一层字段不是递归搜索——这是它和**的关键区别jg dependencies.*.version Cargo.toml # 列出所有依赖的版本号7. 选择运算|一次取多个字段用|在一层内做或省掉多次查询jg prizes[0].(year|category) prize.json # prizes.[0].year: # 2025 # prizes.[0].category: # chemistry8. 可选运算?字段可能不存在foo?表示该步可有可无适合处理字段可选的结构如 TOML/YAML 配置jg database.port?.max_connections config.yaml9. 重复运算*某一步重复任意次后缀*让前一个步骤重复零次或多次比如users*会匹配零个、一个或多个users层。10. 递归下降**任意深度搜索**即字段通配符 Kleene 星是最强的运算符匹配任意深度的路径jg **.name tree.json如果想要在对象和数组中都递归使用(* | [*])*jg (* | [*])*.foo data.json # 在任何深度找到所有名为 foo 的字段 提示不想手写**CLI 的-F/--fixed-string参数会自动把查询当作字段名做任意深度搜索例如jg -F firstname prize.json等价于**firstname的语义。实战组合写出复杂查询的三个技巧括号改变优先级(error|warn).message先分组再拼接不加括号会被解析错。多文件批量查询同一个查询只编译一次可依次作用于多个文件并自动识别格式JSON/YAML/TOML/JSONL/CBOR/MessagePackjg services.*.image staging/docker-compose.yml prod/docker-compose.yml配合输出参数-r输出原始字符串类似jq -r、--count统计匹配数、-l只打印有匹配的文件名方便管道处理。完整测试数据可参考 tests/data/simple/simple.json。性能如何基准测试一图看懂jsongrep 使用 Criterion 与 jsonpath-rust、jmespath、jaq、jql 四个主流查询库做了对比基准测试数据从几 KB 的小样例到 190 MB 的 GeoJSON 文件。下图是 xlarge 规模的端到端解析 编译 搜索耗时小提琴图jsongrep 各查询类型的分布明显更窄更靠左意味着更快也更稳定基准方法论与源码见 benches/README.md 和 benches/query.rs。快速上手与延伸阅读 安装与最小示例cargo install jsongrep # 或 brew install jsongrep echo {a: {b: 1}} | jg a.b想了解更多可以逛这些目录查询引擎核心src/query/AST、解析、NFA/DFA可运行的查询构建器示例examples/query_builder.rs解析 查询完整流程示例examples/parse_and_query.rs贡献指南CONTRIBUTING.md 最后一个小知识文法中还保留了/regex/语法用于按模式匹配字段名但引擎尚未实现执行该语法目前会报 Unsupported feature 错误——规划中敬请期待。赞分享【免费下载链接】jsongrepA path query language for JSON, YAML, TOML, and other serialization formats.项目地址https://gitcode.com/gh_mirrors/js/jsongrep点击查看免费下载相关推荐PyPTO终极指南CANN新范式AI加速器高性能算子开发框架完全解析PyPTO终极指南CANN新范式AI加速器高性能算子开发框架完全解析 PyPTO 是 CANN 推出的面向 AI 加速器的高性能算子开发框架采用 PTOP编译器人工智能高性能计算CANNAscendHound正则表达式搜索5个高级查询语法完全指南Hound正则表达式搜索5个高级查询语法完全指南 Hound是一款闪电般快速的代码搜索引擎专门为开发者提供高效的正则表达式搜索功能。这款开源工具基于Go语言搜索引擎开发者工具后端前端Lertaro搜索语法大全10个运算符玩转fzf风格模糊搜索Lertaro搜索语法大全10个运算符玩转fzf风格模糊搜索 Lertaro 是一款面向 Windows 的高性能本地文件搜索工具基于 NTFS MFT 即桌面应用搜索引擎开发工具插件系统CLI上一篇React语法高亮神器react-syntax-highlighter一站式解决代码展示难题下一篇终极指南Weasis开源医学影像查看器的完整使用教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Hermes Agent 金融投资顾问实战:3 步跑通投资组合优化与风险评估
Hermes Agent 金融投资顾问实战:3 步跑通投资组合优化与风险评估

Hermes Agent 金融投资顾问实战:3 步跑通投资组合优化与风险评估 一个季度回撤 20%,很多投资者的第一反应是慌,第二反应是翻仓位表找原因——但表上只有持仓,没有答案。Hermes Agent 是 Nous Research 开源的自进化 AI 智能体框架… · 2026/11/4 6:28:25

Hermes Agent:连接池参数怎么配,4 个指标验证调优生效
Hermes Agent:连接池参数怎么配,4 个指标验证调优生效

Hermes Agent:连接池参数怎么配,4 个指标验证调优生效 凌晨 3 点告警:连接池打满,接口 P99 飙到 8 秒,日志刷满 PoolTimeout。别急着拉大数字——Hermes Agent 的出站连接池和会话状态库是两处独立配置,这… · 2026/11/4 6:28:25

CTR-NitroFueled-PC ISA重写指南:老CPU(Sandy/Ivy Bridge)为何也能流畅运行游戏
CTR-NitroFueled-PC ISA重写指南:老CPU(Sandy/Ivy Bridge)为何也能流畅运行游戏

【免费下载链接】CTR-NitroFueled-PC Crash Team Racing: Nitro-Fueled (PS4) running natively on Windows 10/11. Windows fork of SacredFire, built on bbport and shadPS4. No game files included. 项目地址: https://gitcode.com/gh_mirrors/ct/CTR-NitroFue… · 2026/11/4 6:28:25

Eclipse+MinGW搭建C语言开发环境:版本锁定与环境变量配置指南
Eclipse+MinGW搭建C语言开发环境:版本锁定与环境变量配置指南

简介:本资源是一份面向C语言初学者与Java开发者转C/C方向的实战型开发环境搭建指南,聚焦EclipseCDTMinGW一体化配置全流程,解决Windows平台下缺乏图形化C语言IDE、编译器集成困难、环境变量易错等典型痛点。文档以清晰步骤覆盖软件选型&#… · 2026/11/4 7:25:35

视频智能裁剪工具Tailor:工程包解析与参数调优实战
视频智能裁剪工具Tailor:工程包解析与参数调优实战

简介:Tailor 是一套面向视频创作者与剪辑初学者的智能视频剪辑工具源码,围绕视频智能裁剪、视频生成与视频优化三大方向,借助人工智能降低视频处理的技术门槛,适合希望研究或二次开发 AI 剪辑能力的学习者与开发者。压缩包共 400 … · 2026/11/4 7:25:35

PyTorch动态图与autograd机制:从Tensor到计算图的深度解析
PyTorch动态图与autograd机制:从Tensor到计算图的深度解析

简介:这份PDF面向深度学习初学者与PyTorch入门者,围绕“从基础到实践”的学习路径展开,帮助读者理解框架用法并建立可上手的编程经验。内容从Numpy基础、Tensor与Autograd讲起,逐步过渡到神经网络工具箱、数据处理与可视化&#x… · 2026/11/4 7:25:35

Tailor视频智能裁剪与生成优化实战:从压缩包到批量流水线
Tailor视频智能裁剪与生成优化实战:从压缩包到批量流水线

简介:Tailor 是一套面向视频创作者与剪辑初学者的智能视频处理工具源码包,聚焦用人工智能降低视频编辑门槛,覆盖智能裁剪、视频生成与画质优化三类核心场景,适合希望研究或二次开发 AI 剪辑能力的技术人员参考。压缩包共 400 个文… · 2026/11/4 7:25:35

Python指针仪表读数自动识别:分割、OCR与角度法
Python指针仪表读数自动识别:分割、OCR与角度法

简介:《基于Python的模拟仪表读数自动识别系统设计》是一篇面向采油厂、变电站、发电厂等工业巡检场景的硕士学位论文,适合从事指针式仪表自动读数、数字图像处理与深度学习应用的研究生和工程技术人员参考。资源为1个PDF文件,压缩包约15.24M… · 2026/11/4 7:25:35

纯前端三件套打造稳定浪漫的520表白页:从架构到避坑
纯前端三件套打造稳定浪漫的520表白页:从架构到避坑

简介:这份资源是一套面向程序员及编程爱好者的520表白页面源码,使用HTML、CSS与JavaScript三种前端技术实现,适合希望以创意方式表达心意的情侣或恋人,也可作为前端初学者练习动画与交互效果的参考案例。压缩包共8个文件&#xff… · 2026/11/4 7:24:35

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

AI辅助技术栈评估:提升研发决策效率60%
AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17

从生成Token到直接决策:Jev如何重塑AI Agent工程实践
从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17

32G统一内存跑大模型:内存账、TPS实测与端云分流
32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码