Thanks for the suggestions. I checked in the changes.
IIRC my rationale for generating the new objects only was because to turn it into running objects I would only need to pipe it to ' | Invoke-Expression'.
In my private testing I was saving the text output of the ConvertFrom-JSON to a file or passing it to other scripts.
The changes are checked in and there is a [switch]$raw argument.
By default the objects are invoked. Pass in -raw and you get the the text.