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) | Foreach { $hashtable[$_.Name] = $_.Value }

Adapted from PSCustomObject to Hashtable