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

使用az rest发送POST请求时,JSON体含右括号')'报错,如何转义?

使用az rest发送含右括号的POST请求时的转义方法

问题场景

执行不含右括号的POST请求时,命令可正常运行:

az rest --method POST --uri "https://someaddress" --body '{"some": "Text" }'

但在请求体字符串中加入右括号')'后,命令执行失败:

az rest --method POST --uri "https://someaddress" --body '{"some": "Text)" }'

触发如下错误:

az : " }" was unexpected at this time.
At line:2 char:1
+ az rest --method POST --uri "https://someaddress" --body '{"some": "T ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified:(" }" was unexpected at this time.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

解决方法

该问题源于Windows命令行对特殊字符的解析规则,右括号')'会被识别为命令块的结束标记,需根据终端环境选择对应处理方式:

1. Windows CMD环境

用**脱字符^**转义右括号,同时将包裹请求体的单引号替换为双引号(CMD对单引号支持有限):

az rest --method POST --uri "https://someaddress" --body "{\"some\": \"Text^)\" }"
  • 注意:双引号内部的双引号需用反斜杠\转义,右括号前添加^完成转义。

2. Windows PowerShell环境

有两种便捷处理方式:

方式一:使用反引号转义

用PowerShell的转义符反引号 (注意不是单引号)转义右括号:

az rest --method POST --uri "https://someaddress" --body '{"some": "Text`)" }'

方式二:使用Here-String(适合复杂请求体)

通过Here-String定义请求体,无需手动转义特殊字符:

$body = @"
{"some": "Text)" }
"@
az rest --method POST --uri "https://someaddress" --body $body

3. Linux/macOS的bash/zsh环境

直接用单引号包裹请求体即可,bash会自动处理内部的右括号,无需额外转义:

az rest --method POST --uri "https://someaddress" --body '{"some": "Text)" }'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 10:12:26