json - 从调用值中提取变量-在条件下获取错误消息
问题描述
我正在尝试进行验证。使用给定值检查部署的值。我使用 RestAPI 方法从 Azure 资源中提取 vnet 值,并从 Object 中转换为 json,因为 vnet 对象给了我空对象 (@{value=System.Object[]})。以下是我得到的 Json 代码:
{
"value": [
{
"properties": "@{virtualNetworkSubnetId=/subscriptions/<XXXX>/resourceGroups/<XXXX>/providers/Microsoft.Network/virtualNetworks/<XXXX>/subnets/<XXXX>; ignoreMissingVnetServiceEndpoint=True; state=Ready}",
"id": "/subscriptions/<XXXX>/resourceGroups/<XXXX>/providers/Microsoft.DBforPostgreSQL/servers/<XXXX>/virtualNetworkRules/<XXXX>",
"name": "<XXXX>",
"type": "Microsoft.DBforPostgreSQL/servers/virtualNetworkRules"
}
]
}
以下 powershell 命令用于比较值,但收到错误消息 $vnet.name 和 $vnet.id is $null
$vnet= ( $vnet | ConvertTo-Json)
It "has this number of vNet Rules defined: $($config.vnetRules.count)"
{
$vnet.count | Should -Be $config.vnetRules.count
}
#$vnet.count is working and giving an success message
foreach ($vnetRule in $config.vNetRules) {
Write-Host $vnet #-> getting Json
Write-Host $vnet.Name #-> return as Empty($null)
Write-Host $vnet.value.Name #-> return as Empty($null)
Write-Host $vnet.id #-> return as Empty($null)
Write-Host $vnet.value.id #-> return as Empty($null)
it "has a vNet rule named: $($vnetRule.ruleName)" {
$vnet.name | Should -Be $vnetRule.ruleName
}
it "has a vNet Rule Subnet ID of: $($vNetRule.subnetId)" {
$vnet.value.id | Should -Be $vNetRule.subnetId
}
}
返回 $null。
解决方案
推荐阅读
- php - PHP - 在 Unix 中获取设备/浏览器本地时间
- javascript - 我如何执行大量的承诺?
- sql - 在 PostgreSQL 数据库中存储时区感知的理想方法是什么?
- javascript - 在函数表达式(或函数声明)中添加方法
- text - Clojure 中的语音识别
- kubernetes - 节点找不到要绑定的可用持久卷
- php - Laravel 5.7 限制访问特定页面
- vb.net-2010 - 从文件中读取 BMP 图像并将其转换为 VB.NET 中的数组
- reactjs - 使用 express 和 react 进行用户身份验证
- c# - 如何首先使用代码创建 dbcontext?