我正在返回一個可能以json格式返回的Web服務調用,而且它確實看起來是有效的json。作爲字符串,它看起來像這樣:枚舉Powershell中的JSON結果時只能看到'rows = System.Object []'
{「total」:10,「rows」:[{「process」:「VISIO.EXE」,「computer_id」:57,「last_used」:「2016-04 -20T01:34:09Z 「},{」 過程 「:」 VISIO.EXE 「 」COMPUTER_ID「:64, 」last_used「: 」2016-04-01T04:09:35Z「},{ 」過程「:」 VISIO .EXE 「 」COMPUTER_ID「:181, 」last_used「: 」2016-03-10T23:02:53Z「},{ 」過程「: 」VISIO.EXE「, 」COMPUTER_ID「:230, 」last_used「:」 2016 -04-19T05:31:32Z 「},{」 過程 「:」 VISIO.EXE」, 「COMPUTER_ID」:237, 「last_used」: 「2016-04-04T10:23:23Z」},{ 「過程」: 「VISIO.EXE」, 「COMPUTER_ID」:284, 「last_used」: 「2016-04-15T10:54:29Z」},{ 「過程」: 「VISIO.EXE」, 「COMPUTER_ID」:8401, 「last_used」: 「2016-05-12T21:55:39Z」},{ 「過程」: 「VISIO.EXE」, 「COMPUTER_ID」:9045, 「last_used」: 「2016-05-12T08:10:40Z」},{「過程「:」 VISIO.EXE 「 」COMPUTER_ID「:9527, 」last_used「: 」2016-05-11T00:49:11Z「},{ 」過程「: 」VISIO.EXE「, 」COMPUTER_ID「:10198,」 last_used 「:」2016-05-06T06:59:29Z「}]}
我想通過使用以下腳本來枚舉結果。我已經嘗試了所有列出的選項1-4,一次取消註釋,但我無法獲得多於一個的結果。
任何想法,我做錯了什麼?
$url = 'https://servername:port/api/sam/raw_app_usage_property_values?criteria={"and":[["process","=","visio.exe"]]}&limit=100&columns[]=process&columns[]=computer_id&columns[]=last_used'
# option 1. get all results, we see a full list of processes, full string returned
#$results = Invoke-WebRequest -Uri $url -Method GET -Headers $headers
#write-host $results
# option 2. get all results but break them down as part of the request. Only one result returned - @{total=10; rows=System.Object[]}
#$results = Invoke-WebRequest -Uri $url -Method GET -Headers $headers | ConvertFrom-Json
#write-host $results
# option 3. use a different method, which supposedly breaks down the request natively. Only one result returned - @{total=10; rows=System.Object[]}
#$results = Invoke-RestMethod -Uri $url -Method GET -Headers $headers
#write-host $results
# option 4. get content directly from file, only one result returned - @{total=10; rows=System.Object[]}
#$results = (Get-Content -path "C:\temp\raw_app_usage_property_values.json" -raw)
# is there anything in the array?
foreach ($result in $results) {
write-host $result
}
你需要,如果你有一個字符串爲使用'ConvertFrom-JSON'(從'調用-WebRequest'或'GET-Content'),或使用'調用,RestMethod'在你可以做@ mark-bertenshaw建議之前,它隱式地從JSON轉換而來。 – TessellatingHeckler
你的'$ results'和'$ results.rows'的值究竟是什麼? – Bum