Restructure JSON (object) into hashtable
This script is needed if you get an object by any source (e.g., json) and you have to give every member of the object as a value (keypair) into a hashtable.hash table.
$bodyjson = @"
{
"logtype": "testlogs2",
"logbody": {
"computername":"Device-123456",
"user":"luca",
"ouput":"registry key was set",
"status":"success",
"time":"xyz"
}
}
"@
$bodyobject = ConvertFrom-Json $bodyjson
$logtype = $bodyobject.logtype
$logbodyobject = $bodyobject.logbody
$logbodyobjectmember = Get-Member -InputObject $logbodyobject | where {$_.Membertype -eq "NoteProperty"}
$outputproperties = @{}
foreach ($item in $logbodyobjectmember.name){
$outputproperties.add($item, $logbodyobject.$item)
}
Use case
To post data into a log analytics workspace you have to send a hash table as body of the post request. If you build an API via Azure Functions then you get a JSON object as input. so you have to restructure the incoming body to be a hash table. This has to be dynamic so the input length and member entities can change.