鑒于以下 JSON
[
{
"key": "James",
"things": [
{
"id": 123,
"name": "PRD"
},
{
"id": 124,
"name": "PRE"
}
]
},
{
"key": "Susan",
"things": [
{
"id": 125,
"name": "PRF"
},
{
"id": 126,
"name": "PRG"
}
]
}
]
其中,我很容易轉換為 Powershell 物件:
$json = '[{"key":"James", "things":[{"id":123,"name":"PRD"},{"id":124,"name":"PRE"}]},{"key":"Susan", "things":[{"id":125,"name":"PRF"},{"id":126,"name":"PRG"}]}]'
$obj = $json | ConvertFrom-Json
如何展平子陣列things并包含key來自父物件的 ,以便我的結果集是
key id name
--- -- ----
James 123 PRD
James 124 PRE
Susan 125 PRF
Susan 126 PRG
我使用以下內容來展平子陣列:
$obj | % { $_.things}
哪個回傳我
id name
-- ----
123 PRD
124 PRE
125 PRF
126 PRG
但是,我完全不知道接下來要做什么。
任何幫助將非常感激。
uj5u.com熱心網友回復:
您回圈到每個鍵,然后回圈到每個事物,因為您希望每個事物有 1 個結果,并使用當前鍵、ID 和名稱構建一個 PSObject。
干得好。
# initial code sample
$json = '[{"key":"James", "things":[{"id":123,"name":"PRD"},{"id":124,"name":"PRE"}]},{"key":"Susan", "things":[{"id":125,"name":"PRF"},{"id":126,"name":"PRG"}]}]'
$obj = $json | ConvertFrom-Json
# Loop needed to flatten the object.
foreach ($i in $obj) {
foreach ($t in $i.things) {
[PSCustomObject]@{
key = $i.key
id = $t.id
name = $t.name
}
}
}
輸出
key id name
--- -- ----
James 123 PRD
James 124 PRE
Susan 125 PRF
Susan 126 PRG
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/366739.html
上一篇:語言統計
下一篇:如何檢查值是否等于陣列中的字串
