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

如何用jq将JSON字符串就地替换为解析后的等效内容?

使用jq解析JSON数组中的序列化字符串值

原始输入

你有一个包含多个对象的JSON数组,部分字段的值是序列化后的JSON字符串:

[
  {
    "a": 1,
    "b": "{\"c\":2}"
  }
]

目标效果

需要将所有b字段的内容替换为解析后的JSON结构:

[
  {
    "a": 1,
    "b": {
      "c": 2
    }
  }
]

jq实现方案

直接使用以下jq命令即可完成需求:

jq 'map(.b |= fromjson)' input.json

命令解释

  • map(...):遍历数组中的每一个对象,对每个对象执行括号内的操作
  • .b |= fromjson:针对每个对象的b字段,调用fromjson函数将字符串解析为JSON对象,并用解析后的结果覆盖原字段值

容错处理(可选)

如果存在b字段不是合法JSON字符串的情况,可以用try避免命令中断,解析失败时保留原字段值:

jq 'map(.b |= try fromjson // .)' input.json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 03:20:14