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

使用jq从多源字段复制值到指定字段的JSON格式化需求

JSON数据规范化处理:提取布尔值到val字段并处理特殊键e

原始数据源

{
  "an": {
    "e": false
  },
  "at": {
    "c": {
      "e": false
    }
  },
  "b": {
    "s": true
  },
  "e": {
    "d": true,
    "e": true,
    "f": true,
    "n": true,
    "p": true,
    "r": true,
    "s": true
  },
  "l": {
    "f": "info"
  },
  "m": {
    "b": true
  },
  "ma": {
    "mo": "pov",
    "s": true
  },
  "r": {
    "mo": "pov",
    "s": true
  }
}

期望输出

{
  "an": {
    "e": false,
    "val": false
  },
  "at": {
    "c": {
      "e": false
    },
    "val": false
  },
  "b": {
    "s": true,
    "val": true
  },
  "e": {
    "d": true,
    "e": true,
    "f": true,
    "n": true,
    "p": true,
    "r": true,
    "s": true
  },
  "ed": {
    "val": true
  },
  "ee":{
    "val": true
  },
  "ef": {
    "val": true
  },
  "en": {
    "val": true
  },
  "ep": {
    "val": true
  },
  "er": {
    "val": true
  },
  "es": {
    "val": true
  },
  "l": {
    "f": "info"
  },
  "m": {
    "b": true,
    "val": true
  },
  "ma": {
    "mo": "pov",
    "s": true,
    "val": true
  },
  "r": {
    "mo": "pov",
    "s": true,
    "val": true
  }
}

处理规则

  • 指定节点布尔值提取:
    • 将an.e的值复制到an.val
    • 将at.c.e的值复制到at.val
    • 将b.s的值复制到b.val
    • 将m.b的值复制到m.val
    • 将ma.s的值复制到ma.val
    • 将r.s的值复制到r.val
  • 特殊键e处理:将e的子键与主键e合并为新键,新键下生成val字段并赋值对应布尔值(例如e.d对应生成ed.val: true)
  • 无布尔值子字段的节点(如l)保持原样

内容的提问来源于stack exchange,提问作者André Letterer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 03:34:54