我有多个.json文件,我想使用PowerShell进行串联或附加。我希望下一个继续下去。为了简单起见,我将显示一个我想合并的两个文件的示例。
File1.json
[
{
"ItemID": 10746,
"CompanyID": 3694,
"Company": "Sweet Mamma",
"SRP": 0.0001,
"UPC": "9076625"
},
{
"ItemID": 10761,
"CompanyID": 3694,
"Company": "Sweet Mamma",
"UPC": "6128021"
} ]
File2.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"
}
]
答案 0 :(得分:2)
这实际上很容易,因为它们都是数组:
$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可以在此处本地连接数组。