arrays - 使用 jq 从数组中提取所有字段
问题描述
我有一个名为的 json 文件collection.json
,例如:
{
"info" : {
...
},
"item" : [
{...}, # A
{...}, # B
{...} # C
]
}
我想要数组中的所有字段item
,如下所示:
{...}, # A
{...}, # B
{...} # C
我试过的:
jq -r '.item' 集合.json
有了这个,我仍然在开头和结尾加上方括号。
jq -r '.item[]' 集合.json
这样,字段之间的逗号就被删除了。
解决方案
由于您的预期输出既不是有效的 JSON(这将是您的第一个建议jq -r '.item' collection.json
,包括逗号和数组括号)也不是元素的纯原始内容(这将是您jq -r '.item[]' collection.json
删除所有周围 JSON 语法的第二个建议),您将拥有自己构建所需的语法,这可能取决于.item
数组元素的实际含义。
例如,使用内置函数将它们转换为字符串并将它们tostring
粘合在一起:join
jq -r '.item | map(tostring) | join(",\n")' collection.json
推荐阅读
- c++ - 确保具有 C++20 概念的类方法
- java - Java 并行 GC:不必要的 Full GC
- python - 在线监控python脚本的进度,或在我的手机或另一台计算机上
- kotlin - 当我使用“Navigation-Drawer”KOTLIN 时,我的 Activity 变暗了
- python - 陷入基本的while循环
- css - 在 React 中将 BackgroundImage 与 Overlay 重叠
- asp.net-core - .net 核心未显示 HTML 静态文件更改
- css - 带有 css 的背景形状
- mongodb - 即使投影单个字段,MongoDB 是否会获取整个文档?
- python - python中的Matlab矩阵声明