Search code examples
jsonpowershell

Create Hashtable from JSON


I want to get a JSON representation of a Hashtable such as this:

@{Path="C:\temp"; Filter="*.js"}

ConvertTo-Json results in:

{
    "Path":  "C:\\temp",
    "Filter":  "*.js"
}

However, if you convert that JSON string back with ConvertFrom-Json you don't get a HashTable but a PSCustomObject.

So how can one reliably serialize the above Hashmap?


Solution

  • $json = @{Path="C:\temp"; Filter="*.js"} | ConvertTo-Json
    
    $hashtable = @{}
    
    (ConvertFrom-Json $json).psobject.properties | Foreach { $hashtable[$_.Name] = $_.Value }
    

    Adapted from PSCustomObject to Hashtable