Powershell Json Содержимое массива от Azure DevOps Api - PullRequest
0 голосов
/ 08 февраля 2020
    {
"count":  3,
"value":  [
              {
                  "id":  "12345678-123456-23424-123456ff2",
                  "name":  "TestProject",
                  "description":  "Test project  migration",
                  "url":  "https://dev.azure.com",
                  "state":  "wellFormed",
                  "revision":  6619,
                  "visibility":  "private",
                  "lastUpdateTime":  "2019-10-14T06:10:03.557Z"
              },
              {
                  "id":  "12345678-123456-23424-123456ff2",
                  "name":  "KC-TestAutomation-Framework",
                  "description":  "Test Automation Frameworks",
                  "url":  "https://dev.azure.com",
                  "state":  "wellFormed",
                  "revision":  6502,
                  "visibility":  "private",
                  "lastUpdateTime":  "2019-10-03T07:53:33.95Z"
              },
              {
                  "id":  "b2345678-123456-23424-12345",
                  "name":  "Training",
                  "description":  "Training Management Project",
                  "url":  "https://dev.azure.com",
                  "state":  "wellFormed",
                  "revision":  7124,
                  "visibility":  "private",
                  "lastUpdateTime":  "2019-12-02T07:19:24Z"
              }
     ]
}

У меня есть это Json, мне нужно создать из этого json другого json, содержащего имя и идентификатор каждого проекта в этой форме name: name value: id в json файле ...

Я пытался успокоиться, как это ..

   $json = Get-Content $file | ConvertFrom-Json 

   ForEach($i in $json.value.id)
    {
      Write-Host "Id: $($i)","name: $($json.value.name)"
    }

1 Ответ

1 голос
/ 08 февраля 2020
  • Считайте файл JSON и преобразуйте его, используя ConvertFrom-Json.
  • Выберите свойства идентификатора и имени и преобразуйте обратно в json
  • Напишите вновь созданный json в файл

Примерно так:

$json = Get-Content -Path 'X:\YourJsonFile.json' | ConvertFrom-Json

$newJson = $json.value | Select-Object id, name | ConvertTo-Json

# output on screen
$newJson

# output to new json file
$newJson | Set-Content -Path 'X:\YourNewJsonFile.json'

Вывод:

[
    {
        "id":  "12345678-123456-23424-123456ff2",
        "name":  "TestProject"
    },
    {
        "id":  "12345678-123456-23424-123456ff2",
        "name":  "KC-TestAutomation-Framework"
    },
    {
        "id":  "b2345678-123456-23424-12345",
        "name":  "Training"
    }
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...