2017-08-07 31 views
0

我有一個PowerShell腳本並希望訪問嵌套密鑰。這是我的JSON:使用PowerShell訪問JSON內的屬性和密鑰

{ 
    "name": "versions.json", 
    "versions": { 
     "1.0.0": { 
      "Component1": "1.0.0", 
      "Component2": "1.0.0", 
      "Component3": "1.0.0" 
     }, 
     "2.0.0": { 
      "Component1": "2.0.0", 
      "Component2": "2.0.0", 
      "Component3": "2.0.0" 
     } 
    } 
} 

我不確定如何訪問每個版本(1.0.0和2.0.0)中的值。我知道我用的每個「版本」獲得屬性名稱:

($json.versions.PSobject.Properties) | ForEach-Object { 
    "Data: $($_.Name)" 
} 

但我怎麼通過每一個「版本」迭代對象的屬性並查看其值,即我如何檢查什麼是包含在「1.0.0」?對於「1.0.0」我希望看到

 
"Component1" at 1.0.0 
"Component2" at 1.0.0 
"Component3" at 1.0.0 

回答

2

你正在做的versions其屬性的值相同:

$json.versions.PSobject.Properties | ForEach-Object { 
    "Data: $($_.Name)" 
    $_.Value.PSobject.Properties | ForEach-Object { 
     '"{0}" at {1}' -f $_.Name, $_.Value 
    } 
}