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

PowerShell转换含JSON字符串的PS对象为JSON时保留原字符串值

解决PowerShell中嵌套JSON转义问题

问题原因

你当前代码里的$JSONStringValue是纯字符串类型,ConvertTo-Json处理字符串时会严格遵循JSON规范:自动转义字符串里的双引号、换行符等特殊字符,所以输出会出现\"和\n。如果希望这段JSON内容作为嵌套的JSON结构(而非转义后的字符串值),需要先把字符串转换成PowerShell对象再处理。

解决方案

步骤1:将JSON字符串转换为PowerShell对象

你提供的$JSONStringValue是JSON片段(只有steps属性,不是完整的JSON对象),需要先补成全量JSON再解析:

# 把JSON片段补成完整的JSON对象,再转成PowerShell对象
$ParsedJson = ConvertFrom-Json -InputObject "{$JSONStringValue}"

步骤2:存入哈希表后转JSON

把转换后的PowerShell对象存入哈希表,再执行ConvertTo-Json,此时会生成嵌套的JSON结构,不会出现转义:

# 包含PS对象的哈希表
$ObjectToConvertToJson =@{
  "Hello123" = $ParsedJson
} 
# 用-Depth参数确保嵌套结构完整输出(默认Depth为2,这里结构层级足够,但显式指定更稳妥)
$ObjectToConvertToJson | ConvertTo-Json -Depth 10

最终输出

{
  "Hello123": {
    "steps": [
      {
        "name": "Example step",
        "collectPageSource": false,
        "errorConditions": [],
        "actions": [
          {
            "hello": "everyone"
          }
        ]
      }
    ]
  }
}

特殊情况说明

如果你确实需要把这段JSON内容当作纯字符串值保留(即输出中Hello123的值是带转义的字符串),那这种转义是JSON的强制规范,无法避免——JSON语法要求字符串中的双引号、换行符必须转义,否则生成的JSON会不符合格式规范,无法被其他JSON解析器正常读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 05:02:03