2016-03-28 4 views
0

PowerShellを使用して、JSON配列内の単一のプロパティがすべて同じかどうかを判断しようとしています。JSON配列内の単一のプロパティをチェックする方法はすべて同じです

これは私のJSONです:JSONペイロード、私は場合TRUEまたはFALSEを返すようにしようとしていることを考えると

{ 
    "project": 1, 
    "info": { 
     "things": [ 
      { "thingId": 1, "status": "success" }, 
      { "thingId": 2, "status": "success" }, 
      { "thingId": 3, "status": "failure" } 
     ] 
    } 
} 

  1. thingsが空/ nullでない - チェックするTRUE(何も、だから私たちはOKです)。 TRUEから
  2. thingsはすべてstatusプロパティが"success"を等しく存在し、いくつかのデータを持っている...と。この例では
  3. FALSE

、この構文を使用することができます:

(Invoke-RestMethod -Uri 'https://my.api.com/something/here' -Method Get).info.<not sure of the rest> 

答えて

1

は、限り、あなたは空の配列または文字列を意味する「ヌル/空」によると(私には非常に簡単に思えます空のオブジェクトではありません)。

$json = Invoke-RestMethod -Uri 'https://my.api.com/something/here' -Method Get 
-not $json.info.things -or $json.info.things.status -notcontains 'failure' 

あなたはそこsuccess以外の状態になるとfailureこのようなものに置き換えることができた場合は

@($json.info.things | Select-Object -Expand status) -notcontains 'failure' 

と第二句を置き換えるv2のPowerShellので立ち往生している場合:

@($json.info.things | ? {$_.status -eq 'success'}).Count -eq $json.info.things.Count 
関連する問題