如何通过jq从一次cURL调用中获取多个JSON元素?
一次cURL调用提取多个JSON字段的方法
你可以通过调整jq的语法,在单次cURL请求后同时提取多个字段,避免重复发起请求,以下是几种常用实现方式:
- 换行输出字段值
使用逗号分隔多个字段选择器,即可一次输出两个字段的值,每个值单独占一行:
curl "https://www.somewebsite.com" | jq -r '.parent.field_1, .parent.field_2'
也可以简化为(利用父节点统一筛选):
curl "https://www.somewebsite.com" | jq -r '.parent | .field_1, .field_2'
- 自定义分隔符拼接输出
如果需要将两个字段值放在同一行,用指定分隔符(如逗号、空格)连接,可使用join函数:
curl "https://www.somewebsite.com" | jq -r '.parent | [.field_1, .field_2] | join(", ")'
输出示例:value_of_field1, value_of_field2
- 输出结构化键值对
若需要保留字段名,输出包含目标字段的JSON对象:
curl "https://www.somewebsite.com" | jq '.parent | {field_1, field_2}'
输出示例:{"field_1":"value_of_field1","field_2":"value_of_field2"}
- 纯文本键值格式输出
如果要输出更易读的纯文本键值对:
curl "https://www.somewebsite.com" | jq -r '.parent | "field_1: \(.field_1)\nfield_2: \(.field_2)"'
输出示例:
field_1: value_of_field1 field_2: value_of_field2
内容的提问来源于stack exchange,提问作者user321627
相关产品推荐
相关产品推荐

