The ConvertTo-Json
cmdlet also has a Depth
parameter, beyond which an object is treated with toString()
instead of going deeper with recursion. So just setting that parameter to whatever max depth of objects you have should result in a correctly formed JSON.
$configJson = ConvertTo-Json $configToPSObject -Depth 8
# your JSON has depth of 5, get some extra