You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jq单次执行同时完成字段转换与Headers字段过滤

解答
  • 不需要拆分多条jq命令通过管道传递处理结果,单条jq命令完全可以在一次执行中同步完成名值对修改、字段过滤的全部操作。
    你只需要在现有已经实现.QueryString、.Params路径下名值对转换的jq逻辑后面,追加Headers字段的过滤规则即可,jq支持在同一条表达式中串联多个字段的更新操作,未被明确指定修改的字段会完全保留原有内容和结构,不会被改动。

具体过滤实现

针对Headers数组的过滤需求,只需要加如下一行逻辑,和你之前的处理逻辑通过|串联即可:

.Headers |= map(select(.Name | IN("Accept", "User-Agent", "Referer")))

这段逻辑的作用是:遍历Headers数组,仅保留Name属性属于指定三个值的条目,其余条目全部丢弃。如果你的jq版本低于1.6不支持IN()函数,可以换成等价的多条件判断写法:

.Headers |= map(select(.Name == "Accept" or .Name == "User-Agent" or .Name == "Referer"))

完整逻辑结构参考

你最终的jq命令结构大致如下,把你之前写好的QueryString、Params处理逻辑替换到对应位置即可:

# 原有.QueryString 名值对修改逻辑
| # 原有.Params 名值对修改逻辑
| .Headers |= map(select(.Name | IN("Accept", "User-Agent", "Referer")))

执行后输出结果除Headers数组仅保留要求的三个条目外,其余所有内容都会和你之前的处理结果完全一致,符合预期要求。

内容的提问来源于stack exchange,提问作者xpt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 08:27:24