Невозможно получить различия между JSON - PullRequest
0 голосов
/ 06 июня 2019

У меня есть два файла JSON, и я должен сравнить их с помощью PowerShell и сформировать третий JSON с различиями.

Например, 1-й JSON

{
   Name: Mansing
   City: Edinburgh
   Country: Scotland
}

2-й JSON

{
   Name: Mansing
   City: Edinburgh
   State: Lothian
}

Я ожидаю третьего JSON, как показано ниже.

{
   Name: Mansing
   City: Edinburgh
   State: Lothian
   Country: India
}

Я пытаюсь преобразовать файл JSON в объект Powershell, используя ConvertFrom-Json, затем хочу сравнить их и сформировать JSON, но я не могу найти соответствующий командлет PowerShell для этого.

$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 ]

1 голос
/ 06 июня 2019

Вы можете сделать это, чтобы объединить два файла:

$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
0 голосов
/ 06 июня 2019

Вы можете сделать это:

$firstFile  = Get-Content "C:\Users\shinde_mn\Desktop\first.JSON" |
ConvertFrom-Json -AsHashTable

Это превращает ваш Json в хеш-таблицу, и вы можете использовать ключи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...