31 lines
966 B
PowerShell
31 lines
966 B
PowerShell
|
function Get-FlattenedAppsettingJsonKeyValue {
|
||
|
param(
|
||
|
[string]$Key,
|
||
|
[object]$Value
|
||
|
)
|
||
|
|
||
|
$returnValues = @()
|
||
|
|
||
|
if ($Value.GetType().Name -eq "PSCustomObject") {
|
||
|
$Value = ConvertTo-Hash $Value
|
||
|
}
|
||
|
|
||
|
if ($Value.GetType().Name -match "Hashtable") {
|
||
|
$deepPairs = (Get-FlattenedAppsettingJson $Value)
|
||
|
foreach($pair in $deepPairs) {
|
||
|
$returnValues += @{ Key = "$Key`:$($pair.Key)"; Value = $pair.Value}
|
||
|
}
|
||
|
} elseif ($Value -is [System.Collections.IEnumerable] -and $Value -isnot [string]) {
|
||
|
for($i = 0; $i -lt $Value.Count; $i++) {
|
||
|
$item = $Value[$i]
|
||
|
$deepPairs = (Get-FlattenedAppsettingJson $item)
|
||
|
foreach($pair in $deepPairs) {
|
||
|
$returnValues += @{ Key = "$Key`[$i]`:$($pair.Key)"; Value = $pair.Value}
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
$returnValues += @{ Key = $Key; Value = $Value; }
|
||
|
}
|
||
|
|
||
|
return $returnValues
|
||
|
}
|