JSON Valdiator no Ubuntu 16.04

4

Eu tentei colocar em mãos alguns validadores de arquivos JSON. Eu me deparei com jq . Mas depois de executar ' jq . file.json ', recebi a saída formatada em JSON. Esse comando não me deu a validação do JSON no meu arquivo.
Eu quero saber como posso verificar a sintaxe ou validar o formato JSON no meu arquivo no Ubuntu. Por favor me avise.

    
por Jaffer Wilson 27.01.2017 / 10:52

3 respostas

3

Experimente jsonlint :

sudo apt install jsonlint

A sintaxe básica de uso é

jsonlint YOUR-FILE.JSON

Você encontra o manual digitando man jsonlint ou visitando a página de manual on-line :

Um trecho:

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

[...]

Para que você possa ver se o seu JSON é válido, verifique o código de retorno de jsonlint . Você pode vê-lo executando echo $? logo em seguida (0 = OK, 1 = inválido) ou avaliando-o usando && , || ou if .

    
por Byte Commander 27.01.2017 / 10:58
1

jq explicará o erro explicitamente, e você também poderá verificar o status de saída, que é 1 para erros de análise e, obviamente, 0 para sucessos.

Por exemplo:

% jq '.' <<<'{"foo": "spam", "bar": 1}'
{
  "bar": 1,
  "foo": "spam"
}

% echo $?
0

Agora, vamos substituir : por = após "bar" - tornando a entrada inválida json :

% jq '.' <<<'{"foo": "spam", "bar"= 1}'
parse error: Invalid numeric literal at line 1, column 23

% echo $?                                  
1
    
por heemayl 27.01.2017 / 11:00
1

Você pode fazer isso usando python json.tool module

echo '{"name": "dedunu", "country": "LKA"}' | python -m json.tool

Se você tiver um arquivo, poderá usá-lo abaixo.

python -m json.tool file.json

Mas o problema com esse comando é que você não obterá um detalhe sobre o problema no arquivo JSON. Eu encontrei a resposta deste link .

    
por dedunumax 27.01.2017 / 12:09