use*_*139 5 powershell json powershell-3.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" } ] }
]
}
Run Code Online (Sandbox Code Playgroud)
Powershell 表达式:
$jString.Members.details | Select-Object -Property Id, FirstName, LastName
Run Code Online (Sandbox Code Playgroud)
到目前为止的输出(我得到的最好).. id 丢失
Id FirstName LastName
-- --------- --------
Adam Ant
Ben Boggs
Carl Cox
Run Code Online (Sandbox Code Playgroud)
我将如何做到这一点?
任何帮助表示赞赏
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}}
Run Code Online (Sandbox Code Playgroud)
我使用计算属性来获取与每个 ID 关联的那些“嵌套”详细信息
这让我得到以下结果。
Id FirstName LastName
-- --------- --------
1 Adam Ant
2 Ben Boggs
3 Carl Cox
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10243 次 |
| 最近记录: |