网站首页 > 技术文章 正文
一个好消息,大家都在用的著名开源项目jq,在断更五年之后,在github又发布了一个新版本1.7。同时项目的组织、源码托管和维护者都又发生了更新。一个生机勃勃的jq获得新生,将常规进行开发和版本迭代。对于新的变化请让虫虫给你一一道来。
项目变化
自上一个稳定版本(jq v1.6,发布于2018年)变化:
jq源代码目前托管于Github:github/jqlang
招募新的维护人员、管理员和所有者。目前维护者列表为:
NEWS文件替换为Markdown格式的NEWS.md。
CI、扫描构建、发布、网站构建等使用GitHub Acton。
许多文档改进和修复。
网站更新了新的部分搜索框、更好的链接部分 ID、深色模式等。在网站目前为一个在线jq在线解析器:
新版本发布支持多平台,包括(不限于):
Linux amd64, arm64, armel, armhf, i386, mips, mips64, mips64el, mips64r6, mips64r6el, mipsel, mipsr6, mipsr6el, powerpc, ppc64el, riscv64和 s390x
Mac amd64和 arm64
Windows i386和 amd64
Docker linux/386, linux/amd64, linux/arm64, linux/mips64le, linux/ppc64le, linux/riscv64和 linux/s390x
Docker镜像源由Docker Hub更换为ghcr.io/jqlang/jq。
新增加OSS-模糊测试。
命令行(CLI)变化
使用JQ_COLORS环境变量可配置对象键颜色。
比如下面代码,将渲染field为黄色粗体 (`1;33`, the last value)
$JQ_COLORS="0;90:0;37:0;37:0;37:0;32:1;37:1;37:1;33" ./jq -n
将默认颜色null更改为亮黑色。
尊重NO_COLOR用于禁用颜色输出的环境变量。
改进 --help输出。可以显示所有选项,并且以更好的顺序展示。
使用--exit-code/ -e选项修复退出代码的多个问题。
true样式结束风格时候,最后返回值为0
false样式结束风格时候,最后返回值为1
没有值时候,返回4
添加 --binary/ -b在Windows上用于二进制输出。要得到\n代替\r\n行结尾。
添加 --raw-output0用于 NUL(零字节)分隔输出。
# 用0填充
#也可以使用xargs -0
可以自定义其他格式,比如”[]”
$jq -n --raw-output0 '"a b c", "d\ne\nf"' | xargs -0 printf '[%s]\n'
# 当字符串中包含一个Null分隔符时候,字符串包含Null字符会报错。
修复断言崩溃并验证 JSON --jsonarg。
删除已用的--argfile选项。
启用堆栈保护。
语言变化
使用十进制数字文本,可以保持精度。比较运算支持高精度,但算术运算可能会被截断。
比较运算时候,支持高精度(JavaScript等语言中会为false)
在sort中也支持
# 下算数运算中可能会被截断(和JavaScript等类似)
添加新的内置pick(stream)用来对输入对象或数组的映射。
添加新的内置debug(msgs)函数,效果为在写入stderr之前对输入应用过滤器。
添加新的内置scan($re; $flags)。
忽略大消息查找
添加新的内置ab求绝对值。这可能允许将数字的字面值保留length和fabs转换为浮点数。
允许if没有else-分支。当跳过else-分支时为.。
将1变为one
也可以这样写
支持elif
允许使用$binding作为文本对象中的键。
之前版本则,必须要带括号
使用时允许在链接索引之间使用点 .["index"]
新版本中,可以这样写:
允许链式值迭代器使用点 .[], .[]?
jq -n '{"a": [123]} | .a[]'
123
可以直接这样写:
jq -n '{"a": [123]} | .a.[]'
123
修复try/catch捕获过多的问题。
加速和重构一些内置函数,也删除 scalars_or_empty/0。
现在 halt和 halt_error立即退出而不是继续下一个输入。
使用对数组分配空来修复删除问题。
比如对所有大于2的值分配为空:
jq -c '(.[] | select(. >= 2)) |= empty' <<< '[1,5,3,0,7]'
其他问题修复
还有大量的修复的问题,请参考官方文档。
猜你喜欢
- 2024-10-23 「jQuery-5」 JavaScript对象和json
- 2024-10-23 超级好用的轻量级JSON处理命令jq(jsonpath js)
- 2024-10-23 $.ajax()常用方法详解(推荐)(ajax详细讲解)
- 2024-10-23 Jquery相关(jqueryui)
- 2024-10-23 jQuery知识点总结(jquery的认识)
- 2024-10-23 前端工程师面试题汇总(前端工程师面试题汇总怎么写)
- 2024-10-23 jQuery基础教程学习笔记(二)样式操作
- 2024-10-23 前端基础进阶(十三)详细图解jQuery扩展jQuery插件
- 2024-10-23 jQuery对象和DOM对象互相转换(jquery对象怎么转换dom对象)
- 2024-10-23 Help!AJAX到底怎么传多文件数组?知道的赶紧进来
- 11-27echarts图形报表的入门案例
- 11-27Echarts仿电梯运行图
- 11-27微信小程序开发之wepy 引入echarts统计图方法 亲测可用
- 11-27yarn安装echarts教程
- 11-27微信小程序使用 ECharts
- 11-274、echarts 如何画图?(必会)
- 11-27JavaScript 前端数据可视化——ECharts.js
- 11-27vue+echarts使用
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)