问题标签 [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.
json - 如何使用 jq 从 JSON 中获取键名
curl http://testhost.test.com:8080/application/app/version | jq '.version' | jq '.[]'
上述命令仅输出如下值:
如何获取键名,如下所示:
json - jq 以不同的方式对 KEY 和 VALUES 进行排序 - 我如何以相同的顺序枚举它们?
我使用 curl 命令以 JSON 格式获取 REST 输出,如下所示
使用以下方法单独获取 KEY 名称:
输出:
使用以下方法单独获取价值:
输出(请注意值的顺序如何与键名的顺序不对应;例如,第一个值 ,"user@test.com"
是 key 的值"Built-By"
,而不是我所期望的第一个键的值"Archiver-Version"
):
我正在尝试将 KEYS 和 VALUES 分配给单独的数组,以便我可以遍历它们并以表格格式显示它们。
但是这两个命令的排序方式不同,我不能直接分配值和键。
无论如何要更改 KEYS 和 VALUES 的排序以使两者相同?
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?
json - 如何防止jq自动将double转换为int?
我有input_file
:
我运行这个
我的输出:
我希望输出是
如何防止 jq 自动将我的 double 值转换为 int?
json - 在launchd中使用jq解析JSON
我有一个 shell 脚本,它评估一个充满 JSON 文件的文件夹,直接调用时运行良好,但从 launchd 运行时失败。具体来说,launchd 在这一行失败:
因为:
我查看了 jq 文档来解决这个问题,但没有提到这个问题。我一直无法弄清楚如何让 jq(或任何类似的第三方工具)通过 launchd 工作。
谢谢!
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:
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]}
但它甚至没有执行,因为我在查找作者密钥的符号时也遇到了问题。
jq - 我如何在jq中添加索引
我想使用 jq 映射我的输入
输出
我做到了
输出:
但我错过了一些东西。
有任何想法吗?
json - 使用 jq 展平 JSON 文档
我正在考虑以下 JSON 对象数组:
我想把它展平以获得:
我正在尝试使用,jq
但我无法将"fields"
. 我该怎么做?目前我对命令行工具很感兴趣,但我也愿意接受其他建议。
json - 使用 jq 提取 JSON 数据结构中的公共前缀
我有一个 JSON 数据集,其中包含从 Redis 存储中提取的大约 870 万个键值对,其中每个键都保证是 8 位数字,并且键是 8 个字母数字字符值,即
为了减少 Redis 内存使用,我想将其转换为哈希哈希,其中哈希前缀键是键的前 6 个字符(请参阅此链接),然后将其存储回 Redis。
具体来说,我希望我生成的 JSON 数据结构(然后我将编写一些代码来解析这个 JSON 结构并创建一个由 HSET 等组成的 Redis 命令文件)看起来更像
由于jq给我留下了深刻的印象,并且我正在努力更精通函数式编程,因此我想使用jq来完成这项任务。到目前为止,我想出了以下内容:
这给了我类似的东西
我尝试了以下方法:
这确实给了我正确的结果,但也为每次减少(我相信)打印出一个错误
最终结果是
这是正确的,但我怎样才能避免抛出这个 stderr 警告呢?