jq:解析并显示 JSON 中的多个值
jq: parse and display multiple values in JSON
我有这个 test.json
文件
{
"list": [
{
"expand": "xx",
"id": "xxxxx",
"self": "https",
"key": "test-11",
"fields": {
"field_1": "1234"
}
},
{
"expand": "xx",
"id": "xxxxx",
"self": "https",
"key": "test-10",
"fields": {
"field_1": "1235",
"field_2": null
}
}
]
}
我正在尝试使用 IFS while 循环读取值:
cat test.json| jq -r '[.list[]| ([.key]|tostring) + "," + "\(.fields| .field_1)"]|@tsv' \
| while IFS="," read -r key field_1; do
echo "$key $field_1"
curl -s https ://thisistest.com/api/$key/$field_1
done;
echo output displays only: test-11
我想获取 key
和 field_1
的值,以便在 curl
请求中使用它们。
@Kev 在评论中的 jq
命令将提取您想要的值,每行每对,如下所示:
> jq -r '.list[]|[.key,.fields.field_1]|@tsv' test.json
test-11 1234
test-10 1235
您可以通过以下方式修改脚本以使每个值对发出 curl
请求。
#!/bin/bash
while read -r key field_1; do
echo curl -s https://thisistest.com/api/$key/$field_1
done < <( jq -r '.list[]|[.key,.fields.field_1]|@tsv' test.json )
如果您对测试满意,请删除 echo
。
我有这个 test.json
文件
{
"list": [
{
"expand": "xx",
"id": "xxxxx",
"self": "https",
"key": "test-11",
"fields": {
"field_1": "1234"
}
},
{
"expand": "xx",
"id": "xxxxx",
"self": "https",
"key": "test-10",
"fields": {
"field_1": "1235",
"field_2": null
}
}
]
}
我正在尝试使用 IFS while 循环读取值:
cat test.json| jq -r '[.list[]| ([.key]|tostring) + "," + "\(.fields| .field_1)"]|@tsv' \
| while IFS="," read -r key field_1; do
echo "$key $field_1"
curl -s https ://thisistest.com/api/$key/$field_1
done;
echo output displays only: test-11
我想获取 key
和 field_1
的值,以便在 curl
请求中使用它们。
@Kev 在评论中的 jq
命令将提取您想要的值,每行每对,如下所示:
> jq -r '.list[]|[.key,.fields.field_1]|@tsv' test.json
test-11 1234
test-10 1235
您可以通过以下方式修改脚本以使每个值对发出 curl
请求。
#!/bin/bash
while read -r key field_1; do
echo curl -s https://thisistest.com/api/$key/$field_1
done < <( jq -r '.list[]|[.key,.fields.field_1]|@tsv' test.json )
如果您对测试满意,请删除 echo
。