如何在powershell中存储多级JSON

时间:2015-08-11 13:24:54

标签: json powershell

我想在powershell变量中存储JSON,以便我可以在Invoke-Request GET,POST等中使用它们。

如下所示

$body = @{
 username = 'some username'
 password = 'some password'
}
$body = $body | ConvertTo-Json

它给了我JSON之类的

{
 "username" : "some username"
 "password" : "some password"
}

但现在我想获得如下输出

  [
       {
          "op":"set",
          "member":"disks",
          "value":[
             {
               "diskId":"0:0",
               "sizeGB":1
             },
             {
               "diskId":"0:1",
               "sizeGB":2
             },
             {
               "diskId":"0:2",
               "sizeGB":16
             },
             {
               "path":"/extra",
               "sizeGB":"20",
               "type":"partitioned"
             }
          ]  
       }
    ]

如何将这个多级JSON存储在powershell变量

由于

1 个答案:

答案 0 :(得分:1)

您可以在PowerShell中嵌套哈希表和数组。这是一个例子:

$body = @{
 'op' = 'set'
 'member' = 'disks'
 'value' = @(
    @{
        'diskId' = '0:0'
        'sizeGB' = '1'
    }, 
    @{
        'diskId' = '0:1'
        'sizeGB' = '2'
    }
    @{
        'diskId' = '0:2'
        'sizeGB' = '16'
    }
    @{
        'path' = '/extra'
        'sizeGB' = '20'
        'type' = 'partitioned'
    }
 )
}

请注意value是一个数组(使用@())哈希表。