Categories
json powershell

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?

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

Adapted from PSCustomObject to Hashtable