问题标签 [jq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
172601 浏览

json - 如何使用 jq 从 JSON 中获取键名

curl http://testhost.test.com:8080/application/app/version | jq '.version' | jq '.[]'

上述命令仅输出如下值:

如何获取键名,如下所示:

0 投票
3 回答
12015 浏览

json - jq 以不同的方式对 KEY 和 VALUES 进行排序 - 我如何以相同的顺序枚举它们?

我使用 curl 命令以 JSON 格式获取 REST 输出,如下所示

使用以下方法单独获取 KEY 名称:

输出:

使用以下方法单独获取价值:

输出(请注意值的顺序如何与键名的顺序不对应;例如,第一个值 ,"user@test.com"是 key 的值"Built-By",而不是我所期望的第一个键的值"Archiver-Version"):

我正在尝试将 KEYS 和 VALUES 分配给单独的数组,以便我可以遍历它们并以表格格式显示它们。

但是这两个命令的排序方式不同,我不能直接分配值和键。

无论如何要更改 KEYS 和 VALUES 的排序以使两者相同?

0 投票
3 回答
14737 浏览

json - jq - select objects with given key name

I've got an arbitrary structure with many levels, etc. I need to select all objects that contain a key named updateDate. How do I do that with jq? I came up with one way but it also produces errors on invalid data types when it visits a leaf which I have to grep out:

I don't really understand how to also check for types or leaves and I suspect there is a simpler way to achieve what I want?

0 投票
1 回答
657 浏览

json - 如何防止jq自动将double转换为int?

我有input_file

我运行这个

我的输出:

我希望输出是

如何防止 jq 自动将我的 double 值转换为 int?

0 投票
2 回答
6212 浏览

json - 在launchd中使用jq解析JSON

我有一个 shell 脚本,它评估一个充满 JSON 文件的文件夹,直接调用时运行良好,但从 launchd 运行时失败。具体来说,launchd 在这一行失败:

因为:

我查看了 jq 文档来解决这个问题,但没有提到这个问题。我一直无法弄清楚如何让 jq(或任何类似的第三方工具)通过 launchd 工作。

谢谢!

0 投票
2 回答
4958 浏览

parsing - jq substring gives "jq: error: Cannot index string with object"

Problem

I'm trying to filter a json JQ result to only show a substring of the original string. For example if a JQ filter grabed the value

I want it to only return the first 10 characters 4ffceab674.


What I've tried

On the Official JQ website you can find an example that should give me what I need:

I've tried to test this out with a simple example in the unix terminal:

0 投票
1 回答
275 浏览

json - JQ 或任何 json 解析器来连接多个大型 JSON 文件

在此页面 - https://openlibrary.org/developers/dumps - 有“版本”和“作者”的 JSON 数据转储,压缩时总计约 7Gb 的数据(未压缩时约 28Gb)。

版本文件的结构如下(每行中的信息各不相同):

作者文件的结构如下:

我想要结束的是一个制表符分隔的文件,只有以下信息:

OL 参考题名 isbn_10 isbn_13 subject_places subject_people

例如:

/books/OL24712550M 拯救恩典 Elizabeth Edwards 0786291672 9780786291670 “癌症”、“家庭”、“立法者的配偶”、“哲学”、“患者”、“大字体”、“律师的配偶”、“传记”、“受保护” DAISY”“美国”,“北卡罗来纳州”“伊丽莎白·爱德华兹 (1949-)”,“约翰·爱德华兹 (1953 年 6 月 10-)”

(在某些情况下,其中一些字段当然是空的。)

所以我想要的所有信息都在版本转储中,除了来自作者转储的“名称”字段,通过版本转储中的引用查找,例如/authors/OL6606949A。

因此,我尝试将JQ与以下查询一起使用(仅用于测试几列):

.personal_name 作为 $names | .作者 | {标题,姓名,作者:$names[.key]}

但它甚至没有执行,因为我在查找作者密钥的符号时也遇到了问题。

0 投票
3 回答
4273 浏览

jq - 我如何在jq中添加索引

我想使用 jq 映射我的输入

输出

我做到了

输出:

但我错过了一些东西。

有任何想法吗?

0 投票
5 回答
36856 浏览

json - 使用 jq 展平 JSON 文档

我正在考虑以下 JSON 对象数组:

我想把它展平以获得:

我正在尝试使用,jq但我无法将"fields". 我该怎么做?目前我对命令行工具很感兴趣,但我也愿意接受其他建议。

0 投票
3 回答
2879 浏览

json - 使用 jq 提取 JSON 数据结构中的公共前缀

我有一个 JSON 数据集,其中包含从 Redis 存储中提取的大约 870 万个键值对,其中每个键都保证是 8 位数字,并且键是 8 个字母数字字符值,即

为了减少 Redis 内存使用,我想将其转换为哈希哈希,其中哈希前缀键是键的前 6 个字符(请参阅此链接),然后将其存储回 Redis。

具体来说,我希望我生成的 JSON 数据结构(然后我将编写一些代码来解析这个 JSON 结构并创建一个由 HSET 等组成的 Redis 命令文件)看起来更像

由于jq给我留下了深刻的印象,并且我正在努力更精通函数式编程,因此我想使用jq来完成这项任务。到目前为止,我想出了以下内容:

这给了我类似的东西

我尝试了以下方法:

这确实给了我正确的结果,但也为每次减少(我相信)打印出一个错误

最终结果是

这是正确的,但我怎样才能避免抛出这个 stderr 警告呢?