Powershell - 从嵌套对象中获取多个值

时间:2016-08-22 04:34:56

标签: json git rest powershell tfs

我确信这是一个非常基本的PowerShell问题,但我有一个JSON文件,我将ConvertFrom-Json加载到PowerShell自定义对象中并且以下select-object正常工作

$JsonContent.value | Select-Object -Property Name, @{Name = 'commit'; Expression = { $_.commit.author.date }}

我试图在嵌套的提交对象中获取另一列,并且以下内容不起作用,所以我希望有人可以帮我弄清楚如何从嵌套的提交对象中获取第二个值(我尝试了一些变体但不是工作)

JsonContent.value | Select-Object -Property Name, @{Name = 'commit'; Expression = { $_.commit.author.date}, {$_.commit.commitId}}

由于

斯科特

1 个答案:

答案 0 :(得分:4)

Expression = ...之后的部分是一个包含代码的脚本块,所以如果你想返回一个值数组,那么它就是属性commit的值,那么只需修改

Expression = { $_.commit.author.date}, {$_.commit.commitId}  

Expression = { $_.commit.author.date, $_.commit.commitId}

以便您使用commma运算符创建并返回2元素数组

可能你宁愿做一些表示提交的好字符串,例如

Expression = { "{0} - {1}" -f $_.commit.author.date, $_.commit.commitId }

如果您希望commitId位于完全不同的列中,只需添加其他属性

... -Property Name, @{Name = 'commit'; Expression = { $_.commit.author.date}}, @{Name = 'commitId'; Expression = {$_.commit.commitId}}