如何将 ConvertFrom-Json 中的字符串视为文字?

How to treat strings in ConvertFrom-Json as literals?

我正在使用以下 JSON 格式的文件导入一组配置值:

$configFileContent = Get-Content -Path run.config | ConvertFrom-Json

这会产生一个结果,其中包含以下内容(变量 $configFileContent 的内容):

{
    "config-values":{
        "path":"..\temp-path"
    }
}

接下来,我尝试从该配置中访问 path 的值,如下所示:

$conf = $configFileContent.'config-values'
$tempPath = $conf.'path'

..但这失败了,因为 ..\temp-path 中的字符 \t 被解释为表示 Tab 的转义序列。这通过打印 $conf 的内容很清楚,现在是:

path
----
..      emp-path

如您所见,Path 的值是 .. <tab> emp-path,而不是预期的 ..\temp-path。显然,当我试图将变量 $tempPath 用作实际路径时,这会在以后造成麻烦。

如何让 Powershell 按预期解释它 - 即,将字符串视为此处的文字?

我知道这可能不是您要找的答案。 但快速解决方法是在 JSON 文件

中使用双反斜杠

这也是所有其他语言的常见解决方法

{
    "config-values":{
        "path":"..\temp-path"
    }
}