JSON
JavaScript Object Notation
A subset of [[YAML]], no comments! (But use JSMin) Also see [[TOML]]
.c.f.
- [[JWT]] JSON Web Token
 - [[jq]] A command line tool for JSON manipulation
 - [[gron]] Make JSON grepable!
 
Though, oddly enough, not JavaScript.
No string in JavaScript can contain a literal
U+2028or aU+2029.
Placeholder Data
There is some JSON PlaceHolder Data here & here
TODO: I should implement some of the myself.
Comments
JSON can’t include comments, but you can pre-process with JSmin to remove them.
Install JSmin
brew install jsmin
Create some JSON with a comments
cat << EOF > ./jsonWithComments.json
{
  "My Beta":                "DEADBEEF2116aecbaefe18d98171e2c",  // This is a comment
  "My Commerce Nightly":    "6DEADBEEF771248cba6aff5f4c972c779",
  "My Commerce Test":       "DEADBEEFe7df43cfaad8fa81f2eaba39",
  "My Experience Nightly":  "DEADBEEFc5dd45ee8d52e0019f0752be",
  "My Experience Test":     "DEADBEEF34ec5133ab2df8adc22d0ae7", // Another (Illegal) comment
  "My Nightly":             "DEADBEEF7485072eada656d6125682f8",
  "My Test":                "DEADBEEF5c11a4990aad6cf8f1c476df"
}
EOF
cat ./jsonWithComments.json
JSON without comments
cat ./jsonWithComments.json | jsmin 
Make it pretty (again)
cat ./jsonWithComments.json | jsmin | python -mjson.tool 
Verification
Use python -mjson.tool for basic JSON verificationa and pretty printing.
Given:
/dev/null
cat /dev/null | python -mjson.tool
No JSON object could be decoded
echo $?
1
{}
echo "{}" | python -mjson.tool
{}
echo $?
0
{"aa": "bb", "bb": "cc"}
echo '{"aa": "bb", "bb": "cc"}' | python -mjson.tool
{
    "aa": "bb",
    "bb": "cc"
}
echo $?
0
{"aa": "bb", "bb": "cc",} with trailing comma
echo '{"aa": "bb", "bb": "cc",}' | python -mjson.tool
Expecting property name: line 1 column 25 (char 24)
echo $?
1