J'ai essayé de mettre la main sur certains validateurs de fichiers JSON. Je suis tombé sur jq
. Mais après avoir lancé 'jq . file.json
', j'ai obtenu une sortie au format JSON. Cette commande ne m'a pas donné la validation de JSON dans mon fichier.
Je veux savoir comment vérifier la syntaxe ou valider le format JSON dans mon fichier Ubuntu. Conseillez-moi, s'il-vous-plaît.
Essayez jsonlint
name__:
Sudo apt install jsonlint
La syntaxe d'utilisation de base est
jsonlint YOUR-FILE.JSON
Vous trouvez son manuel en tapant man jsonlint
ou en visitant sa page de manuel en ligne :
Un extrait:
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
[...]
Ainsi, vous pouvez voir si votre JSON est valide en vérifiant le code de retour jsonlint
name__. Vous pouvez le voir en exécutant echo $?
tout de suite (0 = OK, 1 = non valide) ou en l'évaluant avec &&
, ||
ou if
name__.
jq
va cracher l'erreur explicitement, et vous pouvez également vérifier l'état de sortie, qui est 1
pour les erreurs d'analyse, et évidemment 0
pour les réussites.
Par exemple:
% jq '.' <<<'{"foo": "spam", "bar": 1}'
{
"bar": 1,
"foo": "spam"
}
% echo $?
0
Maintenant, remplaçons :
par =
après "bar"
--, ce qui rendrait la saisie non valide json
name__:
% jq '.' <<<'{"foo": "spam", "bar"= 1}'
parse error: Invalid numeric literal at line 1, column 23
% echo $?
1
Vous pouvez le faire en utilisant le module python json.tool
echo '{"name": "dedunu", "country": "LKA"}' | python -m json.tool
Si vous avez un fichier, vous pouvez l’utiliser comme ci-dessous.
python -m json.tool file.json
Mais le problème avec cette commande est que vous n'obtiendrez pas de détails sur le problème dans le fichier JSON. J'ai trouvé la réponse de ceci lien .