JSON output from PowerShell.
Modelled after https://github.com/jpmens/jo
One way in attempting to get PowerShell scripts to produce valid JSON. You’ve likely seen something like this before:
'{"name":"Jane"}'
Or
'{{"name":"{0}"}}' -f 'Jane'
Another way
PS C:\> ConvertTo-Json @{name='Jane'}
'{"name":"Jane"}'
PS C:\> psjo name=Jane
{"name":"Jane"}
PS C:\> psjo name=Jane b=1 c d=$(get-date) e=$($env:ComSpec)
{
"name": "Jane",
"b": "1",
"c": null,
"d": "02/13/2020 18:49:44",
"e": "C:\\WINDOWS\\system32\\cmd.exe"
}
PS C:\> psjo point=$(psjo x=10 y=20)
{
"point": {
"x": 10,
"y": 20
}
}
PS C:\> psjo glossary=$(
psjo title="example glossary" GlossDiv=$(
psjo title=S GlossEntry=$(
psjo ID=SGML SortAs=SGML GlossTerm='Standard Generalized Markup Language' Acronym=SGML Abbrev='ISO 8879:1986' GlossDef=$(
psjo para='A meta-markup language, used to create markup languages such as DocBook.'
) GlossSee=markup
)
)
)
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook."
},
"GlossSee": "markup"
}
}
}
}
psjo -a summer spring winter
[
"summer",
"spring",
"winter"
]