Powershell转换为json删除特殊字符

时间:2018-01-05 11:20:14

标签: json powershell

我遇到了将字符串保存到json文件的问题。

$newY = "12313tytk1.xp1`F4i12313211ddsada;"

首先我读了json文件

$a = Get-Content 'settings.json' -raw | ConvertFrom-Json

然后更新字段

$a.X.y = $newY

并保存文件

$a | ConvertTo-Json -Depth 5 | set-content 'settings.json'

存在一些问题:

  1. 在文件中保存Y后错误:

    “12313tytk1.xp1F4i12313211ddsada;” 缺少特殊字符:`。

  2. 文件格式错误。到很多空间

  3. “<”和“>”已更改为:\u003c\u003e
  4. 如何改变?

1 个答案:

答案 0 :(得分:4)

Bactick `是Powershell中的转义字符。单引号字符串'是字符串文字,因此不评估,转义等内容。 Doulbe引用的字符串"被评估,因此反引号被解释为转义字符。有关详细信息,请参阅about_Quoting_Rules

考虑,

PS C:\> $newY = "12313tytk1.xp1`F4i12313211ddsada;"
PS C:\> $newY # Misses the backtick
12313tytk1.xp1F4i12313211ddsada;
PS C:\>  $newY2 = '12313tytk1.xp1`F4i12313211ddsada;'
PS C:\>  $newY2 # Contains the backtick
12313tytk1.xp1`F4i12313211ddsada;