问题标签 [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 - 在正确的部分添加 JSON 值
我的 json 文件 'veggies.json' 如下:
我想添加另一个块茎“山药”,它是“根”类型的 - 这必须在 TUBERS 部分下。
我刚开始使用 JSON,我一直在用各种 jq 命令打破我的头脑,但没有多大用处。
我尝试使用以下命令读取 values[0] 处的值,但我似乎无法列出任何内容:
从本质上讲,我正在努力实现这一点 - 如果植物部分是 TUBERS,则添加块茎“山药”,它是“根”类型
有人可以帮我吗?
哦,我坚持使用 jq 版本 1.2,如果这很重要(向后兼容性和所有这些东西)。
非常感谢提前。
jq - 如何在 JQ 中使用相对路径或通配符
是否可以在 JQ 中使用相对路径或名称,例如 XPath // ?
或者是否可以在 JQ 中使用通配符,例如 .level1.*.level3.element ?
json - How to do an unpretty print on pretty JSON file in shell >> serial string JSON >> ES _bulk?
In working with Elasticsearch on AWS EC2, I just hit an issue with bulk indexing. The ES _bulk endpoint requires the files to be basically JSON serial strings with \n terminators on each string; and what I have built using various web APIs and file pre/processing is pretty JSON ie., easily human readable.
Is there a simple shell script method to get all the pretty JSON simply concatenated into strings, without loading up some Java libraries or whatever? I can add tokens to the basic file during pre-processing to tag the desired \n breaks if that helps parsing, but if anyone has a tip on the toolset I would be grateful. I have a feeling there are scripts out there and I know there are some libraries, but I have not found any simple command line tools to do the unpretty printing so far.
bash - 使用 while、for 和 if 进行 Bash,直到我添加第二个值
我有一个脚本,我使用 jq 从 curl 语句中提取值。只要 if 语句接收到一个真值,此脚本就可以正常工作,但是,一旦找到第二个媒体包并必须进行处理,它就会中断。
编码:
成功运行会产生以下结果:
每当我将包含与第一个完全相同的 json 的第二个已发布媒体包添加到我的列表中时,我都会得到以下信息:
任何想法如何解决这一问题?我一直在兜圈子,无法让它工作?
json - 使用 jq 在正确的部分中唯一地添加 JSON 值
这个问题是我之前问过的一个问题的扩展:在正确的部分添加 JSON 值
本质上,我有一个 json 文件“veggies.json”,如下所示:
我想添加另一个块茎“山药”,它可以有烹饪风格的“煮沸” - 这必须在 TUBERS 部分下,但独一无二。意思是,我只想在它不存在的情况下添加这个块茎 - 如果它已经存在,我只想用我传递的任何“cookstyle”替换它 - 它也可以是cookstyle:“mashed”。
从我之前的问题中,我已经有了使用“jq”工具的代码:
但是,这行代码在 TUBERS 部分下多次添加同一行 - 有什么方法可以唯一添加它(类似哈希的行为)
非常感谢提前。
arrays - 如何在 jq 中跨多个对象收集数组值字段的唯一元素?
我有看起来像这样的 json 数据:
我想用相同的“foo”对所有内容进行分组并收集 bar 的唯一值,然后在“baz”数组中收集唯一值:
(我不关心结果是在一个数组中还是只是一个由空格分隔的 JSON 对象的原始序列,我也不关心“baz”数组中项目的顺序)
我已经从源代码安装了 jq 1.4 版。我可以按“foo”正确分组并收集“bar”的唯一值:
产生:
但我不知道如何收集“baz”的独特值。
我错过了什么?
json - 如何很好地删除 jq 中的空数组
我正在阅读 O'Reilly 的新书“命令行中的数据科学”,但在使用 jq 时遇到了麻烦。我有一些 JSON(从 NYTimes Articles API 返回)我正在用 jq 解析,如下所示:
所以,我正在寻找“response”:“docs”(这是一个数组),然后将该数组中的每个项目与“pub_type”等匹配,重命名它等等。这很好用,但它在最后添加了一个空数组:
如何摆脱空数组?我现在的解决方案是将输出通过管道传回 jq,但这感觉并不理想。所以这有效:
但这感觉很丑。有没有更好的方法来做到这一点?
bash - converting lines to json in bash
I would like to convert a list into JSON array. I'm looking at jq
for this but the examples are mostly about parsing JSON (not creating it). It would be nice to know proper escaping will occur. My list is single line elements so the new line will probably be the best delimiter.
json - 获取从包含 JSON 数据的文件中读取的 shell 脚本中的格式化数据
编写一个 shell 脚本以从原始 json 数据中自动获取名称、当前和最新可用版本的列表。
我正在尝试使用 shell 脚本格式化存储在文件中的 JSON 数据。我尝试使用JQ命令行 JSON 解析器。
我想在脚本中获取格式化的 JSON 数据。它们是 JQ 中为相同场景提供的高级选项。我无法正确使用它。
示例:包含以下 JSON 的文件
试图以格式获得结果
有人可以提出任何建议吗?
json - 如何使用 jq 解析 AWS CLI json 输出以获取卷 ID 数组?
我正在使用 AWS CLI 来获取BlockDeviceMappings
特定实例的数组,如下所示,
awscli 查询
输出
期望的输出
/dev/sdb
我想要一个分别为和/dev/sdc
的卷 ID 列表/dev/sdd
。
vol-sdb-xxxxx, vol-sdc-xxxx, vol-sdd-xxxxx
我试图jq
通过将 aws-cli 输出传递到 来进行解析jq
,但我不断收到“jq:错误:无法使用字符串索引数组”。
此外,DeviceName
可能并不总是按照我可以假设数组中的第 2、3 和第 4 个元素的顺序正确的顺序出现,所以我想确保所需的 volume-ids 输出如果可能,始终采用以下形式:sdb、sdc、sdd。
更新 1
在尝试了 Jeff 的两个建议之后:
建议一
建议二
无输出
我正在使用我认为是最新的 jq-1.4。
更新 2
以下适用于 jq-1.4,