在运行时从JSON对象提取值

斯图尔特·诺里斯(StuartNorris)MBA

我是PowerShell的新手,我想弄清楚如何在PowerShell中遍历JSON对象并提取值。

我在WIMS.JSON文件中有一个JSON对象

{ WIMS:{
    A:{drive:"A"},
    B:{drive:"Z"}
}}

我想遍历WIMS中的对象,即A和B,并在循环中选择不同的驱动器号。

我已经能够弄清楚如何使用以下方法获取对象名称(可能很难看)

$json = (Get-Content "WIMS.json" -Raw) | ConvertFrom-Json
$WIMS = $json.WIMS
$wimNames=$($WIMS| Get-Member -MemberType *Property).Name 
for ($i=0; $i -lt $wimNames.count; $i++) {
    write-host ("Property names are: " + $wimNames[$i])
    $object=$WIMS| select $wimNames[$i]   #does not work
    $object.drive  #does not work
}

但是我无法弄清楚如何提取对象,以便可以访问字段。

任何指针将不胜感激。

b

您正在朝正确的方向前进。Select-Object-Expand参数一起使用应该可以为您提供所需的信息。

$wimNames | ForEach-Object {
    $object = $WIMS | Select-Object -Expand $_
    $object.drive 
}

或者

$wimNames | ForEach-Object { $WIMS | Select-Object -Expand $_ | ForEach-Object { $_.drive } }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在运行时无法投射对象

来自分类Dev

使对象在运行时不可变

来自分类Dev

在运行时更改注入的对象

来自分类Dev

在运行时创建Command对象

来自分类Dev

在运行时创建对象?

来自分类Dev

在运行时替换QWidget对象

来自分类Dev

在运行时添加对象?

来自分类Dev

使对象在运行时不可访问

来自分类Dev

在运行时将JSON对象的JSON字符串覆盖到JSON对象

来自分类Dev

在运行时加载JSON文件

来自分类Dev

在运行时加载JSON文件

来自分类Dev

当响应在运行时可以是数组或对象时,请结合JSON解码管道

来自分类Dev

如何选择在运行时为JSON对象序列化的属性?

来自分类Dev

在运行时在javascript数组中添加对象

来自分类Dev

使对象在运行时可序列化

来自分类Dev

Python何时无法在运行时确定对象的类型?

来自分类Dev

在运行时删除所有领域对象

来自分类Dev

在运行时创建DEEP不可变对象

来自分类Dev

在运行时将对象转换为通用类型

来自分类Dev

OpenGLES-在运行时创建对象

来自分类Dev

在运行时过程性地创建和命名对象

来自分类Dev

在运行时获取带有注释的guice对象?

来自分类Dev

C ++在运行时确定多态对象的类型

来自分类Dev

Lua在运行时获取对象的类名称

来自分类Dev

在运行时更改自动装配对象

来自分类Dev

mouseover / mouseout Videojs在运行时共享对象

来自分类Dev

在运行时获取对象的实例名称

来自分类Dev

如何在运行时获取对象类型?

来自分类Dev

Android-使用Dagger在运行时创建对象