如何将ConvertFrom-Json中的字符串当作文字?

问题描述 投票:1回答:1

我正在使用以下命令从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能够按预期解释这一点-即在这里将字符串视为文字?

json powershell escaping string-literals
1个回答
0
投票

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

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

{
    "config-values":{
        "path":"..\\temp-path"
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.