Powershell - 表格的JSON文件

时间:2015-07-14 19:02:16

标签: json powershell powershell-v3.0

我正在尝试进入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 个答案:

答案 0 :(得分:2)

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