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

如何编写JQ命令从JSON带序号姓名字符串中提取内容生成数组?

JQ命令实现方案

以下命令可以直接完成需求中的JSON转换,保留原有结构仅替换目标字段:

jq '.doc |= map(if has("cNames") then (. + {cNameArray: (.cNames | gsub("^\\s+|\\s+$";"") | split("\\s*[0-9]+\\s*") | map(select(length > 0)))} | del(.cNames)) else . end)'

命令逻辑说明

  • 首先遍历doc数组的所有元素,对不存在cNames字段的元素直接保留不做修改
  • 对包含cNames的元素:
    1. 先去除cNames字符串首尾的多余空白
    2. 按「数字+数字前后任意空白」的规则拆分字符串
    3. 过滤拆分结果中产生的空字符串,得到纯姓名数组
  • 新增cNameArray字段后删除原始的cNames字段,其余字段完全保留

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 15:54:04