... to avoid redundant parsing of json content from a given string.
This also allows us to add more strict validation later using Struct
data type.
Change-Id: I2a8bbd266d5e97a06b89c131bbd86e3710a68923
JSON does not allow usage of single quotes and require double quotes.
We have been converting single quotes to support such invalid usage but
that was deprecated a long ago[1].
This also simplifies the logic to handle aliases. Using undef results
in the value set to service default fact.
[1] 1cd349f893408803fec307f615ae3fe265d54fed
Change-Id: If1328531f33a9fe778091ce38b5c1f8072b473b8