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

时间:2019-10-04 06:31:05

标签: json powershell escaping string-literals

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

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

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

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

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

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

..但由于\t中的字符..\temp-path被解释为表示 Tab 的转义序列而失败。通过打印$conf的内容(现在为:

)可以清楚地看出这一点:
path
----
..      emp-path

如您所见,Path的值是.. <tab> emp-path而不是预期的..\temp-path。显然,这稍后会在我尝试使用变量$tempPath作为实际路径时引起麻烦。

我怎样才能使Powershell像预期的那样解释-即在这里将字符串视为文字?

1 个答案:

答案 0 :(得分:1)

我知道这可能不是您要寻找的答案。 但是快速的解决方法是在JSON文件中使用双反斜杠

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

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