Devo usar JSON apenas para usar JSON

11

Estou construindo um site de blog para aprender, com um back-end PHP / MySQl. Toda a entrada do usuário é manipulada com os formulários enviados nas solicitações POST.

De alguma forma, o uso do JSON o tornará mais limpo ou mais fácil de manter ou adicionar recursos? Ou estou apenas adicionando um formato de intercâmbio sem motivo?

Então, essencialmente, qual funcionalidade seria melhor implementada usando JSON?

JonOsterman
fonte
4
Qual a alternativa? Inventando seu próprio formato de dados?
@delnan: Yaml, CSV. Eu provavelmente poderia pensar em alguns outros.
Robert Harvey
10
Raramente está usando blá por usar um plano sábio. Veja o que o JSON é bom e considere se vale a pena usar o JSON para esses aspectos específicos.
Whatsisname 18/12/12
@RobertHarvey: Ou, formulários HTTP padrão.
cHao 18/12/12
7
I'm building a blogging site for learning- você está aprendendo as tecnologias associadas? ou fornecer material para terceiros? Se o primeiro, use absolutamente o json para usá-lo, assim você aprenderá a usá-lo. Desafie-se com as novas tecnologias - caso contrário, você não aprenderá como usá-las.

Respostas:

15

O JSON tem algumas vantagens:

  • É um formato estruturado, que pode ser validado e analisado com ferramentas maduras existentes.
  • Ele pode falar facilmente com JavaScript, o que o torna muito útil para a comunicação AJAX.
  • É extremamente simples e leve. Para o que você deseja usar o intercâmbio de dados XML, o JSON geralmente é uma alternativa melhor.

Minha regra geral é que, se você precisar apenas retornar um único elemento semântico de uma chamada, envie-o como texto sem formatação. Mas se você precisar retornar várias informações, use JSON.

Mason Wheeler
fonte
6
no falar com JS parte não nunca usar eval para obter o valor do mesmo, em vez usar JSON.parse disponível na maioria dos navegadores
aberração catraca
1
Ela fala facilmente para PHP, bem como, uma vez json_decode()e json_encode()converso entre uma string JSON eo nativo Array()estrutura de dados
Izkata
@ Izkata apenas se o seu servidor tiver essas funções.
Darth Egrégio
Exceto no caso de envio de formulário, o uso de JSON quebra os padrões . Por que consertar o que não está quebrado?
Brendan Long
2
@BrendanLong: Esse padrão não diz nada sobre o uso ou não do JSON. Obviamente, se você estiver enviando um formulário, codifique todos os dados de acordo com o padrão HTTP. Mas se um dos elementos do formulário que você está enviando for um item complexo que contém vários elementos semânticos, colocar esse elemento no formato JSON (que é codificado corretamente pela sua biblioteca HTTP) é uma boa maneira de fazê-lo.
Mason Wheeler
5

Pelo que você descreve - parece uma plataforma de blog onde tudo é enviado por meio de formulários - não, você não precisa converter tudo em JSON. O PHP lida com formulários perfeitamente para você. Não há razão para introduzir uma nova complicação nessa situação.

Novamente, em sua circunstância específica , o JSON pode ser algo que você usaria se precisasse enviar dados semiestruturados de volta ao navegador da web. No lado do navegador, o JSON seria muito fácil de analisar em javascript.

GrandmasterB
fonte
2

O JSON é útil apenas se você pretende criar um site pesado em JavaScript que use solicitações do Ajax para transmitir dados ao servidor / obter dados para exibição sem fazer uma postagem completa. Se você não tem intenção de fazer uso dessa funcionalidade, o JSON está apenas envolvendo seu código em outra camada que precisa ser serializada / desserializada para fazer algo útil.

Ryathal
fonte
1

Não acho que a implementação do JSON melhore o seu site como está. JSON é JavaScript Object Notation; portanto, a menos que você esteja começando a aprender JavaScript também, não vejo um valor inerente para garantir que tudo esteja em JSON.

Honus Wagner
fonte
Você não precisa aprender JavaScript para usar / abusar do JSON. É independente da linguagem.
CokoBWare
0

Embora o JSON seja muito extensível e bem estruturado, não é o mais rápido.

O JSON é ótimo para enviar dados do servidor para os clientes, porque resolve problemas com a codificação.

Mas no servidor, você precisa de desempenho máximo e consumo mínimo de espaço em disco. Portanto, para tabelas, você deve usar colunas MySQL e, para não tabelas, é preferível um formato binário.

Para resolver problemas de extensibilidade com arquivos binários, você pode marcar suas estruturas com um código de 4 caracteres para o nome da estrutura e um número de 1-2 bytes para a versão.

Triang3l
fonte
6
JSON é um formato de dados, não um banco de dados.
Robert Harvey
Sim, mas pode ser usado para armazenar matrizes.
Triang3l