Private/ConvertFrom-JsonToHashtable.ps1

function ConvertFrom-JsonToHashtable {
    <#
    .SYNOPSIS
        Converts JSON to a hashtable, compatible with PowerShell 5.1 and 7+
    .DESCRIPTION
        PowerShell 5.1 doesn't support -AsHashtable parameter on ConvertFrom-Json.
        This function provides a compatible conversion method for all PowerShell versions.
    #>

    param(
        [Parameter(Mandatory, ValueFromPipeline)]
        [AllowEmptyString()]
        [string]$InputObject
    )

    process {
        if ([string]::IsNullOrWhiteSpace($InputObject)) {
            return $null
        }

        # PowerShell 6.0+ supports -AsHashtable natively
        if ($PSVersionTable.PSVersion.Major -ge 6) {
            return ConvertFrom-Json -InputObject $InputObject -AsHashtable
        }

        $obj = ConvertFrom-Json -InputObject $InputObject
        return ConvertTo-HashtableInternal $obj
    }
}