[英]Merge/Concatenate multiple json files using PowerShell
我有多個 .json 文件,我想使用 PowerShell 將這些文件相互連接或附加。 一個會結束的地方,我希望下一個繼續。 為簡單起見,我將展示我想要合並的兩個文件的示例。
文件1.json
[
{
"ItemID": 10746,
"CompanyID": 3694,
"Company": "Sweet Mamma",
"SRP": 0.0001,
"UPC": "9076625"
},
{
"ItemID": 10761,
"CompanyID": 3694,
"Company": "Sweet Mamma",
"UPC": "6128021"
} ]
文件2.json
[
{
"ItemID": 477761,
"CompanyID": 4398,
"Company": "Moonlight",
"UPC": "4000308"
},
{
"ItemID": 477761,
"CompanyID": 4398,
"Company": "Moonlight",
"SRP": 14.6500,
"UPC": "099904000308"
}
]
我知道我可以在 Powershell 中使用以下語法來連接兩個 json 文件。
獲取內容 "C:\\File1.json","C:\\File2.json" | 設置內容 "C:\\CombinedOutput.json"
然而,當我執行這個腳本時,我幾乎得到了我需要的東西,除了開始和結束括號(一個 json 文件結束,下一個開始)。 這兩個括號如下例中間所示,應刪除並替換為逗號,如上例所示。
注意:我無法加粗,所以我通過用星號包圍它們來引起人們的注意。
[
{
"ItemID": 10746,
"CompanyID": 3694,
"Company": "Sweet Mamma",
"SRP": 0.0001,
"UPC": "9076625"
},
{
"ItemID": 10761,
"CompanyID": 3694,
"Company": "Sweet Mamma",
"UPC": "6128021"
}
**]**
**[**
{
"ItemID": 477761,
"CompanyID": 4398,
"Company": "Moonlight",
"UPC": "4000308"
},
{
"ItemID": 477761,
"CompanyID": 4398,
"Company": "Moonlight",
"SRP": 14.6500,
"UPC": "099904000308"
}
]
重申一下,這些括號...
]
[
...應該用逗號代替。
,
所需的輸出文件將如下所示,即使將多個 json 文件合並為一個文件,它仍然可以像一個連續的 json 文件一樣正常流動。
[
{
"ItemID": 10746,
"CompanyID": 3694,
"Company": "Sweet Mamma",
"SRP": 0.0001,
"UPC": "9076625"
},
{
"ItemID": 10761,
"CompanyID": 3694,
"Company": "Sweet Mamma",
"UPC": "6128021"
},
{
"ItemID": 477761,
"CompanyID": 4398,
"Company": "Moonlight",
"UPC": "4000308"
},
{
"ItemID": 477761,
"CompanyID": 4398,
"Company": "Moonlight",
"SRP": 14.6500,
"UPC": "099904000308"
}
]
這實際上非常簡單,因為它們都是數組:
$js1 = Get-Content -Path .\file1.json -Raw |
ConvertFrom-Json
$js2 = Get-Content -Path .\file2.json -Raw |
ConvertFrom-Json
$js1 + $js2 |
ConvertTo-Json -Depth 5 |
Out-File -FilePath .\combinedfiles.json
PowerShell 可以在此處本地連接數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.