Как обойти этот JSON в PSObject и обратно в Powershell
Powershell, похоже, не может правильно обойти этот объект JSON:
{
"settings": {
"minimumApproverCount": 2,
"creatorVoteCounts": false,
"scope": [
{
"refName": "refs/heads/d14rel",
"matchKind": "Exact",
"repositoryId": "a290117c-5a8a-40f7-bc2c-f14dbe3acf6d"
}
]
}
}
предполагая, что $json
- это строка, следующая команда:
$json | ConvertFrom-Json | ConvertTo-Json
производит неправильный JSON из него:
{
"settings": {
"minimumApproverCount": 2,
"creatorVoteCounts": false,
"scope": [
"@{refName=refs/heads/d14rel; matchKind=Exact; repositoryId=a290117c-5a8a-40f7-bc2c-f14db
e3acf6d}"
]
}
}
обратите внимание, что он получает переменную" scope " неправильно. Есть ли способ исправить это?
1 ответов
использовать параметр Depth
со значением 3 или больше. По умолчанию 2 недостаточно, более глубокие данные просто преобразуются в строки.
$json | ConvertFrom-Json | ConvertTo-Json -Depth 3
выход
{
"settings": {
"minimumApproverCount": 2,
"creatorVoteCounts": false,
"scope": [
{
"refName": "refs/heads/d14rel",
"matchKind": "Exact",
"repositoryId": "a290117c-5a8a-40f7-bc2c-f14dbe3acf6d"
}
]
}
}