Valide e formate JSON sem classificar alfabeticamente os dados com 'jsonlint'

2

O pacote python-demjson fornece o comando jsonlint .

Eu uso isso para formatar meus dados JSON:

jsonlint -f input.json > output.json

Mas os dados não estão mais na ordem original, eles classificam <key:value> em ordem alfabética:

Original JSON:

{"beta":123, "alpha":123}

Após jsonlint :

{ "alpha":123
  "beta":123 
}  

Posso desativar a classificação alfabética em jsonlint ?
Ou devo usar outro validador JSON para isso? Por favor, sugira apenas ferramentas off-line.

  • SO: Ubuntu 14.04
por UNIm95 10.11.2015 / 13:10

1 resposta

2

Trecho da página de manual de jsonlint :

[...]


-f, --format
      Reformat the JSON (if legal) to stdout

[...]

    When reformatting, all members of objects  (associative  arrays)
    are  always  output  in  lexigraphical  sort order.

[...]

Isso significa que, se você usar a opção -f para reformatar seus dados JSON, essa ferramenta sempre classificará as entradas em ordem alfabética.

Você precisa procurar um software alternativo para fazer isso. Vou editar essa resposta e adicionar alguns se eu encontrar algum.

  • Você pode procurar no site link onde toda a validação é feita no lado do cliente, o que significa que você pode salvar o site no seu computador (salve o site completo, não somente HTML!) e, em seguida, ainda o use offline abrindo o arquivo baixado no seu navegador.

    Ele não altera a ordem dos elementos classificando-os. Sua entrada de exemplo se torna em:

    {
      "beta": 123,
      "alpha": 123
    }
    
por Byte Commander 10.11.2015 / 13:26