无法获得JSON之间的差异

时间:2019-06-06 09:13:57

标签: json powershell

我有两个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"
}

2 个答案:

答案 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变成一个哈希表,您可以使用这些键。