首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ConvertTo-Json增加了额外的反斜杠和双引号

ConvertTo-Json增加了额外的反斜杠和双引号
EN

Stack Overflow用户
提问于 2021-10-18 19:22:38
回答 1查看 152关注 0票数 0

我有一个PowerShell脚本,它将从一个API调用中提取JSON并添加一个附加值,但是,在这个调用中,在双引号和双引号上的反斜杠中显示了附加值。有什么想法可能是错误的,以及如何解决这个问题?

代码语言:javascript
复制
$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的值时,结果看起来不错

代码语言:javascript
复制
write-Host $Exclusion:
{"path":"\\stuff","violations":[]}

但是,当它运行POST时,输出显示为"{\"path\":\"\\\\stuff\",\"violations\":[]}"

代码语言:javascript
复制
#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":[]}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-18 19:36:24

当您让convertto-json cmdlet在进程中运行两次时,问题就出现了。

代码语言:javascript
复制
'{"path":"\\stuff","violations":[]} '| ConvertTo-Json

就是这样的结果,你会得到

顺便说一句,你的代码有点奇怪。您创建一个哈希表,然后通过Add-Member添加成员。

要么使用

代码语言:javascript
复制
$Exclusion = @{};
$Exclusion.path = '\stuff'
$Exclusion.violations = @()

或者当你喜欢PSCustomObject的时候

代码语言:javascript
复制
$Exclusion = [PSCustomObject]@{
    path = '\stuff';
    violations= @()
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69621478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档