[英]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.