wot*_*324 2 powershell json azure
它看起来像我期待这种方式工作的方式不是.我想要返回多个对象,但它似乎只返回一个.我不知道如何做到这一点.
一个非常简单的JSON文件:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"value": "sa01"
},
"virtualNetworkName": {
"value": "nvn01"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想动态地将参数及其值添加到一个漂亮的pscustomobject中(对于上面的数据看起来如下):
ParameterName | Value
===========================
storageAccountName | sa01
virtualNetworkName | nvn01
Run Code Online (Sandbox Code Playgroud)
我不明白为什么以下返回一个对象:
$TemplateParametersFile = "C:\Temp\deploy-Project-Platform.parameters.json"
$content = Get-Content $TemplateParametersFile -Raw
$JsonParameters = ConvertFrom-Json -InputObject $content
$JsonParameters.parameters | Measure-Object
Run Code Online (Sandbox Code Playgroud)
在写这篇文章的同时,我最终找到了一个能够得到我想要的解决方案,我将在答案部分发布.随意上学,改进......
我会做一些不同的事情,跳过哈希表,并使用隐藏PSObject属性.所以,在你存储JSON数据后拿起$content,我会做这样的事情:
#Convert JSON file to an object
$JsonParameters = ConvertFrom-Json -InputObject $content
#Create new PSObject with no properties
$oData = New-Object PSObject
#Loop through properties of the $JsonParameters.parameters object, and add them to the new blank object
$JsonParameters.parameters.psobject.Properties.Name |
ForEach{
Add-Member -InputObject $oData -NotePropertyName $_ -NotePropertyValue $JsonParameters.parameters.$_.Value
}
$oData
Run Code Online (Sandbox Code Playgroud)
顺便说一句,它有转换你发布的JSON的问题,我不得不在两个值周围添加引号,例如"value": "sa01".
| 归档时间: |
|
| 查看次数: |
13864 次 |
| 最近记录: |