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

如何使用JQ通过JSON模板转换原始JSON数据结构

用JQ实现数据映射的解决方案

你可以直接执行以下JQ命令完成转换:

jq 'map({
  id: .id,
  practitioner: .practitioner,
  patient: {
    name: (.patientName // .name),
    familyName: (.patientFamilyName // .familyName)
  }
})' data.json

命令逻辑说明

  • 外层map()用来遍历源数据数组的每一个元素,逐个转换结构
  • id和practitioner字段和源数据结构完全一致,直接取值即可
  • patient的name字段用//运算符做 fallback 处理:优先取当前元素的patientName属性,不存在的话就取name属性,适配你给出的两种不同的源数据字段命名
  • familyName字段同理做兼容处理,优先取patientFamilyName,不存在则取familyName

如果需要把模板逻辑封装成JQ函数复用,也可以用以下写法:

def template:
{
  id: .id,
  practitioner: .practitioner,
  patient: {
    name: (.patientName // .name),
    familyName: (.patientFamilyName // .familyName)
  }
};

map(template)

把上面的内容保存为template.jq,运行jq -f template.jq data.json就能得到同样的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:48:03