我有一个配置的JSON文件,用于确定我需要在对象上调用哪些属性。
由于PowerShell允许使用字符串变量作为属性,因此可以正常工作:
$config = Get-Content .\syncProperties.json -Raw | ConvertFrom-Json
$myPropertyFromJSON = $config.profileMappings[0].sourceField
echo $myObject.$myPropertyFromJSON
但是sourceField可以是像“SomeProperty.SubProperty”这样的子属性,当然这不起作用。
从JSON处理属性/子属性是一种很好的通用方法(阅读:我不想做一些讨厌的替换或拆分)
示例JSON:
{
"profileMappings": [
{
"source": "AzureRm",
"sourceField": "ExtensionProperty.extension_xyz_countryCode",
"destinationField": "countryCode"
},
{
"source": "AzureRm",
"sourceField": "Department",
"destinationField": "companyName"
},
{
"source": "EXO",
"sourceField": "CustomAttribute1",
"destinationField": "BuildingNo"
}
]
}