我有一个PowerShell脚本,它将从一个API调用中提取JSON并添加一个附加值,但是,在这个调用中,在双引号和双引号上的反斜杠中显示了附加值。有什么想法可能是错误的,以及如何解决这个问题?
$Exclusion = @{};
# The Value here needs to have a slash but cant get it working
$Exclusion | Add-Member -Type NoteProperty -Name 'path' -Value '\stuff'
$Exclusion | Add-Member -Type NoteProperty -Name 'violations' -Value @()
$Exclusion = $Exclusion | ConvertTo-Json -Compress
write-Host $Exclusion
$policyWebResponse.memoryviolation.memory_exclusion += $Exclusion当我打印$Exclusion的值时,结果看起来不错
write-Host $Exclusion:
{"path":"\\stuff","violations":[]}但是,当它运行POST时,输出显示为"{\"path\":\"\\\\stuff\",\"violations\":[]}"
#Debug
Write-Host("Policy dump: ");
Write-Host $newPolicyJson
Results:
"memory_exclusion": [
{
"violations": [],
"path": "\\existing\path"
},
"{\"path\":\"\\\\stuff\",\"violations\":[]}"
],
"memory_exclusion_list": [
"\\existing\path2"
]
},结果:“{\”路径\“:\”\\东西\“,\”违规\“:[]}”
Want:{"path":"\stuff","violations":[]}
发布于 2021-10-18 19:36:24
当您让convertto-json cmdlet在进程中运行两次时,问题就出现了。
'{"path":"\\stuff","violations":[]} '| ConvertTo-Json就是这样的结果,你会得到
顺便说一句,你的代码有点奇怪。您创建一个哈希表,然后通过Add-Member添加成员。
要么使用
$Exclusion = @{};
$Exclusion.path = '\stuff'
$Exclusion.violations = @()或者当你喜欢PSCustomObject的时候
$Exclusion = [PSCustomObject]@{
path = '\stuff';
violations= @()
}https://stackoverflow.com/questions/69621478
复制相似问题