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

使用JQ仅转换JSON对象中的details子数组

JQ 查询解决方案

核心查询语句

针对你的需求,保留外层结构并处理details数组的JQ语句如下:

.details |= map(select(.detail | test("^\\s*$") | not) | .detail)

语句解释

  • .details |= ...:仅修改JSON中的details字段,其余键值对保持原样
  • map(...):遍历details数组的每一个元素
  • select(.detail | test("^\\s*$") | not):筛选出detail值不是纯空白字符(包括空格、制表符、换行符等)的数组元素;如果只需要过滤单个空格,可替换为select(.detail != " ")
  • | .detail:从筛选后的元素中提取detail字段的值,组成新的数组

示例验证

假设原始JSON输入为:

{
  "extraField": "保留的内容",
  "details": [
    {"detail": "  "},
    {"detail": "第一条有效内容"},
    {"detail": "\t\n"},
    {"detail": "第二条有效内容"}
  ]
}

执行上述JQ语句后,输出结果为:

{
  "extraField": "保留的内容",
  "details": [
    "第一条有效内容",
    "第二条有效内容"
  ]
}

命令行使用方式

将查询语句直接传入jq命令:

jq '.details |= map(select(.detail | test("^\\s*$") | not) | .detail)' your_input.json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 17:50:21