json - 无法使用Powershell提取json值

标签 json powershell

这是我的文件结构,我想基于“名称”的值访问订阅

{                                                                    
 "Topics": 
 [
     {
         "Name": "topic1",
         "Subscription": "sub1"
     },
     {
         "Name": "topic2",
         "Subscription": "sub2"
     }
 ]

}

$json = Get-Content 'path' | Out-String | ConvertFrom-Json
$subscriptions=$json.Topics.Subscription|Where Name -EQ "topic1" 

我通过执行以下命令获取名称
$json.Topics.Name
    topic1
    topic2
$json.Topics.Subscriptions
    sub1
    sub2

但不确定如何将其保留在where子句中

最佳答案

请尝试以下操作:

$json = @'
{
    "Topics":
    [
        {
            "Name": "topic1",
            "Subscription": "sub1"
        },
        {
            "Name": "topic2",
            "Subscription": "sub2"
        }
    ]

}
'@

$objectFromJson  = $json | ConvertFrom-Json
$objectFromJson.Topics | Where-Object Name -eq 'topic1'

以上 yield :
Name   Subscription
----   ------------
topic1 sub1

如果您只想输出.Subscription属性值,只需使用($objectFromJson.Topics | Where-Object Name -eq 'topic1').Subscription
至于您尝试了什么:

$json.Topics.Subscription



这将提取Subscription属性的值,它们只是字符串("sub1""sub2"),没有.Name属性,因此Where Name -EQ "topic1"过滤器不匹配任何内容。

关于json - 无法使用Powershell提取json值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53873738/

相关文章:

javascript - $watch JSON 中的对象 Angularjs

php - 将 JSON 中的值插入数据库

collections - 是否可以在 powershell 中向集合添加属性?

Powershell解压包含大量文件的zip文件

json - 使用 UTF-8 编码的 Jackson ObjectMapper?

ios - Swift 4 对成员 'jsonObject(with:options:)' 的引用不明确

java - Facebook API 和访问 token

PowerShell 'Or' 语句

powershell - 如何使用 PowerShell 获取域的最新 SSL 证书?

powershell - 使用 Powershell 执行权限更改 ala chmod/attrib