Я пытаюсь преобразовать имя и значения, возвращенные из моего вызова API, в столбцы и строки во время экспорта, но пока мне не повезло.
$searchResponse = Invoke-RestMethod -Method POST -Uri $searchUri -ContentType application/json -Header $requestHeader -Body $searchResultsRequest
$lists = $searchResponse.businessO.fields | Select name, value
Возвращает список $:
name value
---- ----
Name YY
Address ABC street
City Seattle
Zip 01256
Name XYZ
Address XYZ street
City XYZ
Zip 45456
Name Mike
Address 1256 Street
City New York
Zip 78965
Я хочу вывести этот результат в CSV следующим образом:
Name Address City Zip
YY ABC street Seattle 01256
.
.
.
Я попытался просмотреть список и применилусловие для проверки имени и заполнения значения на его основе, но в итоге я получаю либо дубликаты, либо все мои выходные данные вышли из sysnc, что означает, что Майк получает адрес YY и так далее ...
If($lists.count -ge 0){
ForEach($list in $lists){
if($list.name -eq "Name") {$name= $list.value }
}
Iбыл бы очень признателен за любую помощь в этом.Спасибо.
$ searchResponse results $ searchResponse | ConvertTo-Json
{
"businessObjects": [
{
"busObId": "xxxxxxxxxxxxxx",
"busObPublicId": "abc345",
"busObRecId": "xxxxxxxxxxxxxxxxxxx",
"fields": " ",
"links": "",
"errorCode": null,
"errorMessage": null,
"hasError": false
},
{
"busObId": "xxxxxxxxxxxxx",
"busObPublicId": "rty567",
"busObRecId": "xxxxxxxxxxxxxxxx",
"fields": " ",
"links": "",
"errorCode": null,
"errorMessage": null,
"hasError": false
}
],
"hasPrompts": false,
"links": [
],
"prompts": [
],
"searchResultsFields": [
],
"totalRows": 2500
}
У полей есть имя и значение, которые я хочу вывести.$ searchResponse.businessObjects.fields | ConvertTo-Json
[
{
"dirty": false,
"displayName": "Name",
"fieldId": "xxxxxxxxxxx",
"html": null,
"name": "Name",
"value": "Mike"
},
{
"dirty": false,
"displayName": "Address",
"fieldId": "456451212113132",
"html": null,
"name": "Address",
"value": "Seattle"
},
и так далее.