我有多个要使用PowerShell串联或附加的.json文件。我希望下一个继续下去。为了简单起见,我将显示一个我想合并的两个文件的示例。
File1.json
[
{
"ItemID": 10746,
"CompanyID": 3694,
"Company": "Sweet Mamma",
"SRP": 0.0001,
"UPC": "9076625"
},
{
"ItemID": 10761,
"CompanyID": 3694,
"Company": "Sweet Mamma",
"UPC": "6128021"
} ]
Run Code Online (Sandbox Code Playgroud)
File2.json
[
{
"ItemID": 477761,
"CompanyID": 4398,
"Company": "Moonlight",
"UPC": "4000308"
},
{
"ItemID": 477761,
"CompanyID": 4398,
"Company": "Moonlight",
"SRP": 14.6500,
"UPC": "099904000308"
}
]
Run Code Online (Sandbox Code Playgroud)
我知道我可以在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"
}
]
Run Code Online (Sandbox Code Playgroud)
重申一下,这些括号...
]
[
Run Code Online (Sandbox Code Playgroud)
...应以逗号代替。
,
Run Code Online (Sandbox Code Playgroud)
然后,所需的输出文件将如下所示,甚至将几个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"
}
]
Run Code Online (Sandbox Code Playgroud)
实际上这很容易,因为它们都是数组:
$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
Run Code Online (Sandbox Code Playgroud)
PowerShell可以在此处本地连接数组。
归档时间: |
|
查看次数: |
1784 次 |
最近记录: |