PowerShell - 将 JSON 文件转换为表格

6

我希望你能够帮助我进行 Powershell 相关的学习,并尝试将一个简单的 JSON 文件转换为表格格式。

JSON 文件的格式如下:

{ "Members" : [
{ "Id" : 1,
    "Details" : [ { "FirstName" : "Adam" }, { "LastName" : "Ant" } ] },
{ "Id" : 2,
    "Details" : [ { "FirstName" : "Ben" }, { "LastName" : "Boggs" } ] },
{ "Id" : 3,
    "Details" : [ { "FirstName" : "Carl"} , { "LastName" : "Cox" } ] }
]
}

Powershell表达式:

$jString.Members.details | Select-Object -Property Id, FirstName, LastName

目前的输出(我得到的最佳输出)... 缺少id。

Id  FirstName   LastName
--  ---------   --------
    Adam        Ant
    Ben         Boggs
    Carl        Cox

我该如何完成这个任务?非常感谢您的帮助。
1个回答

11

JSON 不是我的强项,但如果你看数据结构的话,ID与名字不在同一级别,而是嵌套在详细信息中。我将数据放在一个here-string中进行测试。

$json = @"
{ "Members" : [
    { "Id" : 1,
        "Details" : [ { "FirstName" : "Adam" }, { "LastName" : "Ant" } ] },
    { "Id" : 2,
        "Details" : [ { "FirstName" : "Ben" }, { "LastName" : "Boggs" } ] },
    { "Id" : 3,
        "Details" : [ { "FirstName" : "Carl"} , { "LastName" : "Cox" } ] }
]
}
"@ | ConvertFrom-Json | Select-Object -Expand Members 

$json | Select ID,@{Name="FirstName";E={$_.Details | Select -Expand FirstName}},@{Name="LastName";E={$_.Details | Select -Expand LastName}}

我使用计算属性来获取与每个ID关联的“嵌套”细节

这使我得到以下结果。

Id FirstName LastName
-- --------- --------
 1 Adam      Ant     
 2 Ben       Boggs   
 3 Carl      Cox   

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接