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

如何用jq将JSON一级原子值统一包裹为数组?

用jq将JSON中非数组字段转为数组

需求是把JSON里所有顶层非数组类型的字段值包装成数组,已经是数组的字段保持不变。

原始JSON:

{
 "a" : 23,
 "b" : "hi",
 "c": [90],
 "d": [{"j" : 80}]
}

目标JSON:

{
 "a" : [23],
 "b" : ["hi"],
 "c": [90],
 "d": [{"j" : 80}]
}

实现命令

直接用这条jq命令就能完成转换:

jq 'with_entries(.value |= if type != "array" then [.] else . end)' input.json

命令说明

  • with_entries():遍历对象的每一组键值对,对每个键值对做处理后重新生成对象。
  • .value |= ...:专门针对键值对里的value部分做修改。
  • 条件判断if type != "array" then [.] else . end:检查值的类型,不是数组就把它包进数组里;要是已经是数组,就保持原内容不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 22:36:19