JSON Validator in Ubuntu 16.04
Try jsonlint
:
sudo apt install jsonlint
The basic usage syntax is
jsonlint YOUR-FILE.JSON
You find its manual by typing man jsonlint
or visiting its online manpage:
An excerpt:
NAME
jsonlint - A JSON syntax validator and formatter tool
SYNOPSIS
jsonlint [-v][-s|-S][-f|-F][-ecodec]inputfile.json...
[...]
OPTIONS
The return status will be 0 if the file is legal JSON, or non-zero
otherwise. Use -v to see the warning details.
[...]
-v, --verbose
Show details of lint checking
-s, --strict
Be strict in what is considered legal JSON (the default)
-S, --nonstrict
Be loose in what is considered legal JSON
-f, --format
Reformat the JSON (if legal) to stdout
[...]
So you can see whether your JSON is valid by checking the return code of jsonlint
. You can see it by running echo $?
right afterwards (0=OK, 1=invalid), or by evaluating it using &&
, ||
or if
.
I tried jsonlint
but it doesn't work.
jq . may-file.json
work nice!
Hope this feedback is helpful.
jq
will spit out the error explicitly, and you can also check the exit status, which is 1
for parse errors, and obviously 0
for successes.
For example:
% jq '.' <<<'{"foo": "spam", "bar": 1}'
{
"bar": 1,
"foo": "spam"
}
% echo $?
0
Now, let's replace :
with =
after "bar"
-- making the input an invalid json
:
% jq '.' <<<'{"foo": "spam", "bar"= 1}'
parse error: Invalid numeric literal at line 1, column 23
% echo $?
1
You can do this using python json.tool
module
echo '{"name": "dedunu", "country": "LKA"}' | python -m json.tool
If you have a file you can use it as below.
python -m json.tool file.json
But the problem with this command is that you won't get a detail about the problem in JSON file. I found the answer from this link.