我有两个JSON文件,我的要求是使用PowerShell比较它们并形成具有差异的第三个JSON。
例如 第一个JSON
{
Name: Mansing
City: Edinburgh
Country: Scotland
}
第二个JSON
{
Name: Mansing
City: Edinburgh
State: Lothian
}
我期望如下所示的第三个JSON。
{
Name: Mansing
City: Edinburgh
State: Lothian
Country: India
}
我正在尝试使用ConvertFrom-Json将JSON文件转换为Powershell对象,然后想要对其进行比较并形成JSON,但是我找不到相关的PowerShell Commandlet。
$firstFile = Get-Content "C:\Users\shinde_mn\Desktop\first.JSON" |
ConvertFrom-Json
$secondFile = Get-Content "C:\Users\shinde_mn\Desktop\second.JSON" |
ConvertFrom-Json
#$x = $json | ConvertFrom-Json
Write-Host $firstFile
if (Compare-Object $firstFile.PSObject.Properties $secondFile.PSObject.Properties) {
Write-Host "no go"
}
答案 0 :(得分:1)
您可以执行以下操作以合并两个文件:
$firstFile = '{"Name": "Mansing", "City": "Edinburgh", "Country": "Scotland"}' | ConvertFrom-Json
$secondFile = '{"Name": "Mansing", "City": "Edinburgh", "State": "Lothian"}' | ConvertFrom-Json
foreach ($key in $secondFile.PSObject.Properties.Name)
{
if ($firstFile.PSObject.Properties.Name -notcontains $key)
{
$firstFile | Add-Member -Name $key -Value $secondFile.$key -MemberType NoteProperty
}
}
$firstFile
答案 1 :(得分:0)
您可以这样做:
$firstFile = Get-Content "C:\Users\shinde_mn\Desktop\first.JSON" |
ConvertFrom-Json -AsHashTable
这会将您的Json变成一个哈希表,您可以使用这些键。