2017-07-21 17 views
0

ユーザーのリストを返すAPI要求を行うPowerShellスクリプトがあります。PowerShell json foreachが機能しません

私は各ユーザーから特定のプロパティを取得しようとしています。しかし、各ループごとに動作していないようです。

それぞれがユーザーをループしていないようです。

foreach($user in $userList) 
    { 
     Write-Host($user.users.guid); 
     Write-Host("Hello World"); 
    } 

この政治家では、ユーザーGUID、次にHello Worldが表示されます。私が得るのは、すべてのGUIDSが並んで印刷され、最後にこんにちは世界です。

他のプログラミング言語のようにループしているようには見えません。

ここに私のコードです。

$userList = @(); 
    $userList = $null; 
    $userList = Invoke-RestMethod -Method GET -Headers $headers -Uri $Uri - 
    Body ($body | ConvertTo-Json); 

    foreach($user in $userList) 
    { 
     Write-Host($user.users.guid); 
     Write-Host('Hello World'); 
    } 

私の目標は、各ユーザーのGUIDを取得し、ループを通過するときに別の方法に渡すことです。しかし、foreachループが機能しないため、これを達成できません。

jsonオブジェクトになっている可能性がありますか?

Jaonオブジェクトを配列などに変換できますか?

提案がありますか?

+0

'foreach($ user in $ userList.users.guid)'? –

+0

これはうまくいきません。 – user1158745

答えて

0

あなたは実際にjsonをjsonに変えようとしていますが、あなたが望むのは、応答本体をjson文字列からオブジェクトに変換することです。これを行うには、ConvertFrom-Jsonを使用し、ConvertTo-Jsonを使用しないでください。

希望します。

+0

これは多少役に立った。だから私は$ userListを取って、次に実行した:$ z = $ userList | ConvertFrom-Json私が戻ってくるエラーは例外の型です:system.arguemtnException、message:jsonプリミティブが無効です:。 – user1158745

+0

あなたが受け取った回答をコピーできますか? – IamNguele

+0

それはエラーです。メッセージ:無効なjsonプリミティブ:。なぜ私は期間が無効なプリミティブであると言うのだろうと思っています。それはjsonに含まれるデータの問題かもしれませんか? – user1158745

関連する問題