首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在powershell中删除JSON中的项目

在powershell中删除JSON中的项目
EN

Stack Overflow用户
提问于 2019-12-18 14:49:36
回答 1查看 46关注 0票数 0

我有一个问题要问,要移除powershell中Json中的一个对象。我从powershell获取结果,并将其压缩并放入JSON中,如下所示

代码语言:javascript
运行
AI代码解释
复制
foreach ($vm in $vms) {
$id = $vm.Config.InstanceUuid
$vmname = $vm.Config.Name
$geturl = "https://$nsxmanager/api/v1/fabric/virtual-machines?external_id=$id&included_fields=tags"
$getrequest = Invoke-RestMethod -Uri $geturl -Authentication Basic -Credential $nsxtcred -Method Get -ContentType "application/json" -SkipCertificateCheck
$getresult = $getrequest.results | ConvertTo-Json -Compress
Write-Host ($getresult)
}

这将获得结果

代码语言:javascript
运行
AI代码解释
复制
{"tags":[{"scope":"allow_access","tag":"external"}, {"scope":"test","tag":"text"}]}
{"tags":[{"scope":"allow_access","tag":"external"}]}
{"tags":[{"scope":"allow_access","tag":"external"}]}
{"tags":[{"scope":"allow_access","tag":"external"}]}
{"tags":[{"scope":"allow_access","tag":"external"}]}
{"tags":[{"scope":"allow_access","tag":"external"}]}
{"tags":[{"scope":"allow_access","tag":"external"}]}

我试图从所有这些结果中删除元素{"scope":"allow_access","tag":"external"}。

我不确定如何删除它,我想在这里寻求一些建议,我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2019-12-18 16:43:13

您可以尝试过滤掉这些结果,方法是将您的JSON结果转换为PSCustomObject,在嵌套的Foreach循环中迭代Tags属性,并构建一个不包含您想要过滤的结果的新PSCustomObject:

代码语言:javascript
运行
AI代码解释
复制
$getresult = $getresult | ConvertFrom-Json

$FilteredTagsArr = @()

Foreach($Tag in $GetResult.Tags){

    If($Tag.scope -eq 'allow_access' -and $Tag.tag -eq "external"){
        #Do Nothing
    }Else{
        $NewObj = [PSCustomObject]@{
            Tag = $tag.tag
            Scope = $tag.scope
        }

        $FilteredTagsArr += $NewObj
    }

}

$GetResult.Tags = $FilteredTagsArr

Return $GetResult | ConvertTo-Json
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59394537

复制
相关文章

相似问题

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