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

PowerShell处理含HTML字符串的JSON时转换异常求助

解决PowerShell处理含HTML的JSON时HTML变形的问题

我太懂这种头疼的情况了——用PowerShell操作带HTML内容的JSON文件,转存回去后HTML居然变样了,明明没碰这部分内容却面目全非。这其实是PowerShell内置的ConvertFrom-Json和ConvertTo-Json默认行为导致的:解析JSON时它会自动解码HTML里的转义实体(比如把"变成"),重新序列化时又会把这些字符转义,最终打乱了原始HTML结构。

下面给你两个可靠的解决方案,按需选择:

方案一:用Newtonsoft.Json处理(强烈推荐)

Newtonsoft.Json(也就是大家常说的Json.NET)是.NET生态里最成熟的JSON处理库,能精准控制序列化/反序列化的细节,完美保留HTML的原始格式。

  1. 先安装模块(如果还没装):
Install-Module -Name Newtonsoft.Json -Scope CurrentUser
  1. 读取、修改、保存JSON的完整代码:
# 读取你的JSON文件内容
$jsonContent = Get-Content -Path "your-target-file.json" -Raw

# 用Newtonsoft.Json反序列化为PowerShell对象
$jsonObject = [Newtonsoft.Json.JsonConvert]::DeserializeObject($jsonContent)

# 在这里执行你需要的操作,比如修改count值、更新其他字段
$jsonObject.count = 2
$jsonObject.value[0].id = 3

# 重新序列化为JSON,严格保留HTML格式
$updatedJson = [Newtonsoft.Json.JsonConvert]::SerializeObject($jsonObject, [Newtonsoft.Json.Formatting]::Indented)

# 保存回文件
$updatedJson | Set-Content -Path "updated-file.json" -Encoding UTF8

这个方法会原封不动保留HTML里的所有转义实体和格式,绝对不会出现变形问题。

方案二:调整PowerShell内置工具的操作逻辑

如果不想额外安装模块,也可以通过“提取原始HTML+替换回去”的方式绕开内置工具的缺陷,适合JSON结构固定的场景:

# 读取原始JSON的完整内容
$rawJson = Get-Content -Path "your-target-file.json" -Raw

# 用正则提取出原始的HTML内容(针对你提供的JSON结构)
$htmlMatch = [regex]::Match($rawJson, '"System.Description":\s*"([^"]+)"')
$originalHtml = $htmlMatch.Groups[1].Value

# 把JSON转成PowerShell对象进行你需要的操作
$jsonObject = $rawJson | ConvertFrom-Json
# 示例操作:新增一个字段
$jsonObject.value[0].fields.Add("NewField", "NewValue")

# 先临时序列化对象,再把原始HTML替换回去
$tempJson = $jsonObject | ConvertTo-Json -Depth 10
$updatedJson = $tempJson -replace '"System.Description":\s*"([^"]+)"', "`"System.Description`": `"$originalHtml`""

# 保存最终的JSON文件
$updatedJson | Set-Content -Path "updated-file.json" -Encoding UTF8

这个思路是先把原始HTML“备份”出来,等处理完其他字段后再替换回去,避免内置工具修改HTML内容。

补充:问题根源再解释下

PowerShell内置的JSON cmdlet是为通用场景设计的,它会自动处理字符串中的转义序列和HTML实体。比如你的HTML里的"会被解析成",而重新序列化时,这个"又会被转成\",一来一回就破坏了原始HTML的结构——这就是你看到HTML改变的原因。


内容的提问来源于stack exchange,提问作者art-a-game

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 16:27:45