无法分析powershell中的多行数组

无法分析powershell中的多行数组,powershell,Powershell,我的aws cli返回带有嵌套哈希的多行数组,我无法解析输出以从中获取适当的值 >Write-Host $a [ [ [ { "VolumeID": "vol-fxxxxxx" } ] ] ] 如果我执行$a[0],它将返回第一行,即“[”与增量索引相同。 如何解析此数组并从中获取volumeID? 谢谢 其他详情: 感谢您宝贵的回答。以下是上述对象的类名: > $a.getType()

我的aws cli返回带有嵌套哈希的多行数组,我无法解析输出以从中获取适当的值

>Write-Host $a
[
  [
     [
         {
             "VolumeID": "vol-fxxxxxx"
         }
     ]
   ]
]
如果我执行$a[0],它将返回第一行,即“[”与增量索引相同。 如何解析此数组并从中获取volumeID? 谢谢

其他详情:

感谢您宝贵的回答。以下是上述对象的类名:

> $a.getType()                                                                                                          
IsPublic IsSerial Name                                     BaseType                                                                                                             
 -------- -------- ----                                     --------                                                                                                             
True     True     Object[]                               System.Array

> $a | Where-Object ($_ -like "*Volume*")

> $a | ConvertFrom-Json
 ConvertFrom-Json : Invalid JSON primitive: 
 Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData.
 At line:1 char:6


 + $a | ConvertFrom-Json
 +      ~~~~~~~~~~~~~~~~
 + CategoryInfo          : NotSpecified: (:) [ConvertFrom-Json], ArgumentException
 + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.ConvertFromJsonCommand
你好,Martin Brandl,Tessellingheckler我已经更新了你的问题,你能帮我解决同样的问题吗。
谢谢

您可以使用where-object cmdlet

$a | where-object {$_ -like "*Volume*"}
有关where object cmdlet的详细信息,请参见:


谢谢,蒂姆。

您可以使用where-object cmdlet

$a | where-object {$_ -like "*Volume*"}
有关where object cmdlet的详细信息,请参见:

谢谢,蒂姆

与增量索引相同

我无法理解增量索引是否也这样做,并返回第一行,但它看起来是:

多行字符串(
$A.gettype()
具有
名称:string
):

或者,一个字符串数组(
$a.gettype()名称为Object[]或string[]
),首先执行此操作,然后从JSON转换:

$a = -join $a
与增量索引相同

我无法理解增量索引是否也这样做,并返回第一行,但它看起来是:

多行字符串(
$A.gettype()
具有
名称:string
):

或者,一个字符串数组(
$a.gettype()名称为Object[]或string[]
),首先执行此操作,然后从JSON转换:

$a = -join $a

您可以发布
$a.GetType()
的输出吗?
$a
是否只是一个多行字符串,
$a[0]
返回
[
,因为这是第一个字符?您可以发布
$a.GetType()
的输出吗
$a
是否只是一个多行字符串,
$a[0]
返回
[
因为这是第一个字符吗?
$b[0]。卷ID
似乎足够了,尽管有嵌套数组。
$b[0]。卷ID
似乎足够了,尽管有嵌套数组。