baseModules/PPoShTools/1.0.9/Public/Utils/ConvertTo-HashtableFromJSON.ps1
function ConvertTo-HashtableFromJSON { #requires -Version 3.0 <# .SYNOPSIS Retrievies json file from disk and converts to hashtable. .DESCRIPTION Reads file given as Path parameter and using ConvertTo-HashtableFromPsCustomObject converts it to a hashtable. .PARAMETER Path Path to a json file. .EXAMPLE ConvertTo-HashtableFromJSON -Path c:\somefile.json Will read somefile.json and convert it to custom hashtable. .INPUTS Path to a json file (string). .OUTPUTS Custom Hashtable. #> [CmdletBinding()] [OutputType([Hashtable])] param ( [Parameter( Position = 0,HelpMessage='Path to json file', Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)] [ValidateScript({Test-Path -Path $_ -PathType 'Leaf' -Include '*.json' })] [string] $Path ) Process{ Write-Log -Info -Message "Reading configuration file from {$Path}" $content = Get-Content -LiteralPath $path -ReadCount 0 -Raw | Out-String $pscustomObject = ConvertFrom-Json -InputObject $content $hashtable = ConvertTo-HashtableFromPsCustomObject -psCustomObject $pscustomObject Write-Log -Info -Message "Returning parsed configuration hashtable" $hashtable } } |