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

如何使用jq美化包含转义双引号的JSON字符串

问题原因

你剪贴板里的内容不是结构化JSON对象,而是被JSON序列化后的字符串类型值:外层有一对包裹的双引号,内部所有双引号都带转义符。直接执行pbpaste | jq "."时,jq只会把它识别为普通字符串原样输出,自然不会做格式化。

解决方法
  • 方法1:jq原生两步解析(好记、兼容性强)
    先加-r(raw原始输出)参数剥掉外层字符串的转义、拿到原始JSON文本,再管道给jq做常规美化即可:

    pbpaste | jq -r "." | jq "."
    
  • 方法2:单条jq命令一步完成
    用jq内置的fromjson函数,直接把输入的字符串值解析为结构化JSON对象,自动完成美化:

    pbpaste | jq "fromjson"
    
执行效果

对你提供的示例字符串执行上述任意一条命令,都会输出格式化后的标准JSON:

{
  "name": "Hans",
  "Hobbies": [
    "Car",
    "Swimming"
  ]
}
扩展说明

如果遇到多层嵌套转义的JSON字符串(比如从多层嵌套的API返回里复制的内容),只要叠加对应次数的解析逻辑即可,比如两层转义时可以用:

# 两步法
pbpaste | jq -r "." | jq -r "." | jq "."
# 单命令法
pbpaste | jq "fromjson | fromjson"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 05:09:19