Ale*_*lex 2 iteration bash json jq
我的 json 知识很不稳定,所以如果我使用了错误的术语,请原谅我。
我有input.txt可以简化为:
[
{
"foo1": "bar1",
"baz1": "fizz1"
},
{
"foo2": "bar2",
"baz2": "fizz2"
}
]
Run Code Online (Sandbox Code Playgroud)
我想通过循环迭代每个对象,所以我本质上希望首先处理 1,然后循环处理 2,等等。
我以为是这样的:
jq 'keys[]' input.json | while read key ; do
echo "loop --$(jq "[$key]" input.json)"
done
Run Code Online (Sandbox Code Playgroud)
但这给了我
loop 0
loop 1
Run Code Online (Sandbox Code Playgroud)
我希望看到的地方(这里的间距是可选的,不确定 jq 将如何解析它):
loop { "foo1": "bar1", "baz1": "fizz1" }
loop { "foo2": "bar2", "baz2": "fizz2" }
Run Code Online (Sandbox Code Playgroud)
我缺少什么?
无需使用bash,您可以jq自行执行此操作:
jq -r 'keys[] as $k | "loop: \(.[$k])"' file.json
Run Code Online (Sandbox Code Playgroud)
loop: {"foo1":"bar1","baz1":"fizz1"}
loop: {"foo2":"bar2","baz2":"fizz2"}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1745 次 |
| 最近记录: |