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

PowerShell中ConvertTo-Json额外添加反斜杠与双引号如何解决

问题解决方案

故障原因

这是PowerShell JSON序列化的典型错误:

  • 你提前将$Exclusion哈希表单独转成了JSON字符串,再把这个字符串追加到了$policyWebResponse.memoryviolation.memory_exclusion数组中
  • 该数组原本存储的是未序列化的结构化对象(调试输出里第一个元素就是正常的对象格式)
  • 后续你把整个$policyWebResponse对象转成JSON用于POST请求时,PowerShell会将数组里的字符串类型元素二次序列化:自动给字符串加外层双引号,内部的双引号、反斜杠全部加转义符,就出现了你看到的额外转义问题。

解决方法

修改逻辑,不要提前序列化单个$Exclusion对象,直接把结构化的哈希表追加到数组中,最后统一序列化整个policy对象即可,修改后的代码如下:

$Exclusion = @{};
$Exclusion | Add-Member -Type NoteProperty -Name 'path' -Value '\stuff'
$Exclusion | Add-Member -Type NoteProperty -Name 'violations' -Value @()                    
# 删掉提前转JSON的步骤,直接把结构化对象加入数组
$policyWebResponse.memoryviolation.memory_exclusion += $Exclusion

# 最后需要发请求前,再把整个policy对象转成JSON,注意加-Depth参数避免层级截断
$newPolicyJson = $policyWebResponse | ConvertTo-Json -Depth 10 -Compress

注意:使用ConvertTo-Json时建议指定-Depth参数,PowerShell默认序列化深度只有2,层级深的结构会被截断,导致数据丢失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:24:06