我花了 3 個小時除錯,但我沒有找到根本原因。
我在變數中有文本(JSON 格式)。我使用“Convert-From-JSON”將其轉換為實際物件。我希望我可以使用物件的屬性。但它不起作用:(似乎轉換只給了我兩個表(狀態和資料)。我做錯了什么?
我的代碼:
$results = {
"status": "FINISHED",
"data": {
"results": [
{
"id": "11565C230500",
"custom": {
"image": "XXXX",
"name": "XXXX",
"articleNumber": "4032423423505"
}
},
{
"id": "22739L5F16243",
"custom": {
"image": "XXXX",
"name": "XXXX",
"articleNumber": "4032423423505"
}
},
{
"id": "3304332724004",
"custom": {
"image": "XXXX",
"name": "XXXX",
"articleNumber": "4032423423505"
}
}
]
}
}
現在把它作為物件:
$resultObject = ConvertFrom-JSON -InputObject $result
現在嘗試檢索:
$resultObject.id | where {$_.id -eq '11565C230500'}
uj5u.com熱心網友回復:
就像現在一樣,您定義$results為腳本塊,它應該是一個字串:
$results = @'
{
"status": "FINISHED",
"data": {
"results": [{
"id": "11565C230500",
"custom": {
"image": "XXXX",
"name": "XXXX",
"articleNumber": "4032423423505"
}
},
{
"id": "22739L5F16243",
"custom": {
"image": "XXXX",
"name": "XXXX",
"articleNumber": "4032423423505"
}
},
{
"id": "3304332724004",
"custom": {
"image": "XXXX",
"name": "XXXX",
"articleNumber": "4032423423505"
}
}
]
}
}
'@
現在您可以從 JSON 字串轉換它
$resultObject = $results | ConvertFrom-Json
然后,要決議出嵌套屬性,您需要遵循以下資料結構:
$resultObject.data.results | Where-Object {$_.id -eq '11565C230500'}
會給你這個:
id custom
-- ------
11565C230500 @{image=XXXX; name=XXXX; articleNumber=4032423423505}
如果您想從包含的custom 物件中獲取 articleNumber ,請繼續深入挖掘:
($resultObject.data.results | Where-Object {$_.id -eq '11565C230500'}).custom.articleNumber
這將回傳 4032423423505
uj5u.com熱心網友回復:
假設該示例中 json 是單引號,否則它是一個腳本塊,并且使用“$results”代替“$result”,則 id 屬性位于 data.results 之下。如果您已經展開了 id 屬性,則無法使用 where-object 檢查它。這是 where-object 的另一種形式。我正在使用 foreach-object 別名“%”擴展“custom”屬性。注意一個 id 號更短。注意 convertto-json 的默認深度為 2。
$results = '{"status":"FINISHED","data":{"results":[
{"id":"11565C230500", "custom":{"image":"XXXX","name":"XXXX","articleNumber":"4032423423505"}},
{"id":"22739L5F16243","custom":{"image":"XXXX","name":"XXXX","articleNumber":"4032423423505"}},
{"id":"3304332724004","custom":{"image":"XXXX","name":"XXXX","articleNumber":"4032423423505"}}
]}}'
$resultObject = ConvertFrom-JSON -InputObject $results
$resultObject.data.results | where id -eq 11565C230500
id custom
-- ------
11565C230500 @{image=XXXX; name=XXXX; articleNumber=4032423423505}
$resultobject.data.results | where id -eq 11565C230500 | % custom
image name articleNumber
----- ---- -------------
XXXX XXXX 4032423423505
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/348773.html
標籤:电源外壳
