[ Conteúdo ] - JSON e algumas das suas principais limitações
Introdução:
Primeiramente quero deixar bem claro que a ideia não é desmerecer o JSON e nem nada do tipo, e sim orientar pessoas que não estão cientes dessa limitações evitar problemas no futuro, assim aumentando seu conhecimento técnico sobre JSON. Antes de mais nada eu presumo que você, leitor, tenha tido algum contato com JSON antes, sem mais delongas.
Tipos de dados limitados:
JSON aceita apenas strings
, numbers
, objects
, arrays
e booleanos
. Caso queira representar algum tipo de dado mais complexo, vai ter que procurar uma alternativa que supra essa limitação como um biblioteca ou técnica. Lembrando que caso queria ler bigInt
em um JSON, vai lançar um typeError
. E se colocar functions
, undefined
, infinity
, symbols
, dentre alguns outros tipos, serão convertidos para null. Alguns sendo omitidos e outros não (consulte a documentação para ter acesso a detalhes mais aprofundados)
Sem aplicação de esquema
JSON Não aplica um esquema, o que significa que os valores podem ter comportamento diferente dependo dos recursos. Com isso, nunca temos certeza se os dados são consistente ou estão devidamente formatados.
JSON não possui Built-in Erro handle (mecanismo que lida com erros internamente)
Isso significa que a maiorias dos erros que podem eventualmente ocorrer em JSON só vão ser percebidos quando em execução. No máximo, JSON alerta sobre erros de sintaxe como nome de propriedade entre aspas. Então cuidado e sempre leve em consideração que o erro pode ser relacionado ao arquivo JSON.
Não tem suporte a dados binário:
Se você quiser representar dados como vídeo ou audio em JSON, vai ter que codificar em um formato como base64
antes de transformar em um arquivo JSON.
JSON não suporta comentários (é sério?)
Pse senhoras e senhores, JSON não suporta comentários, assim dificultando a explicação sobre do que se trata tal dados e etc... Já reforço para dar bons nomes para suas propriedades tornando tudo semântico, deixe sua equipe feliz :)
Conclusão
Apesar dessas limitações, o JSON é amplamente utilizado devido à sua simplicidade, facilidade de uso e amplo suporte em diferentes linguagens de programação.
O intuito não é desmerecer JSON, mas sim alertar sobre suas limitações e garantir umas horinhas de sono extras.