Procurei na wikipedia e pesquisei no Google e li a documentação oficial, mas ainda não cheguei ao ponto de realmente entender o que é o JSON e por que o usaria.
Estou construindo aplicativos usando PHP, MySQL e Javascript / HTML há algum tempo, e se o JSON puder fazer algo para facilitar minha vida ou melhor meu código ou melhor minha interface de usuário, gostaria de saber sobre isso. Alguém pode me dar uma explicação sucinta?
Respostas:
JSON (JavaScript Object Notation) é um formato leve usado para troca de dados. É baseado em um subconjunto da linguagem JavaScript (a maneira como os objetos são criados em JavaScript). Conforme declarado no MDN , alguns JavaScript não são JSON e alguns JSON não são JavaScript.
Um exemplo de onde isso é usado são as respostas dos serviços da web. Antigamente, os serviços da Web usavam XML como formato de dados primário para a transmissão de dados, mas desde que o JSON apareceu ( o formato JSON é especificado na RFC 4627 por Douglas Crockford ), ele era o formato preferido, porque é muito mais leve
Você pode encontrar muito mais informações no site oficial do JSON .
JSON é construído em duas estruturas:
Estrutura JSON
Aqui está um exemplo de dados JSON:
JSON em JavaScript
JSON (em Javascript) é uma string!
As pessoas geralmente assumem que todos os objetos Javascript são JSON e que JSON é um objeto Javascript. Isto está incorreto.
Em Javascript não
var x = {x:y}
é JSON , este é um objeto Javascript . Os dois não são a mesma coisa. O equivalente JSON (representado na linguagem Javascript) seriavar x = '{"x":"y"}'
.x
é um objeto do tipo string e não um objeto por si só. Para transformar isso em um objeto Javascript pleno direito você deve primeiro analisá-lo,var x = JSON.parse('{"x":"y"}');
,x
agora é um objeto, mas isso não é JSON mais.Consulte Objeto Javascript Vs JSON
Ao trabalhar com JSON e JavaScript, você pode tentar usar a
eval
função para avaliar o resultado retornado no retorno de chamada, mas isso não é sugerido, pois existem dois caracteres (U + 2028 e U + 2029) válidos no JSON, mas não no JavaScript (leia mais sobre isso aqui ).Portanto, é preciso sempre tentar usar o script de Crockford que verifica um JSON válido antes de avaliá-lo. O link para a explicação do script é encontrado aqui e aqui está um link direto para o arquivo js. Atualmente, todos os principais navegadores têm sua própria implementação para isso.
Exemplo de como usar o analisador JSON (com o json do snippet de código acima):
O analisador JSON também oferece outro método muito útil
stringify
,. Este método aceita um objeto JavaScript como parâmetro e retorna uma sequência com o formato JSON. Isso é útil para quando você deseja enviar dados de volta ao servidor:Os dois métodos acima (
parse
estringify
) também usam um segundo parâmetro, que é uma função que será chamada para cada chave e valor em todos os níveis do resultado final, e cada valor será substituído pelo resultado da sua função inserida. (Mais sobre isso aqui )Btw, para todos vocês que pensam que o JSON é apenas para JavaScript, confira este post que explica e confirma o contrário.
Referências
fonte
O conceito explicado - sem código ou jargão técnico
O que é JSON? - Como expliquei à minha esposa TM
Eu: “É basicamente uma maneira de se comunicar com alguém por escrito ... mas com regras muito específicas.
Esposa: sim ....?
Eu: no inglês prosaico, as regras são bastante soltas: assim como nas lutas de jaula. Não é assim com JSON. Existem muitas maneiras de descrever algo:
• Exemplo 1: Nossa família tem 4 pessoas: você, eu e 2 filhos.
• Exemplo 2: Nossa família: você, eu, garoto1 e garoto2.
• Exemplo 3: Família: [você, eu, garoto1, garoto2]
• Exemplo 4: temos 4 pessoas em nossa família: mãe, pai, garoto1 e garoto2.
Esposa: Por que eles não usam apenas inglês comum?
Eu: Eles sim, mas lembre-se de que estamos lidando com computadores. Um computador é estúpido e não será capaz de entender frases. Portanto, precisamos ser realmente específicos quando os computadores estão envolvidos, caso contrário, eles ficam confusos. Além disso, o JSON é uma maneira bastante eficiente de se comunicar, de modo que a maioria das coisas irrelevantes é cortada, o que é bastante bonito. Se você queria comunicar nossa família a um computador, uma maneira de fazê-lo é assim:
…… e isso é basicamente JSON. Mas lembre-se, você DEVE seguir as regras gramaticais do JSON. Se você violar essas regras, o computador simplesmente não entenderá (ou seja, analisará) o que você está escrevendo.
Esposa: Então, como eu escrevo em Json?
Uma boa maneira seria usar um serializador json - que é uma biblioteca que faz o trabalho pesado para você.
Sumário
fonte
Em resumo - o JSON é uma maneira de serializar de tal maneira que se torna um código JavaScript. Quando executado (com avaliação ou não), esse código cria e retorna um objeto JavaScript que contém os dados que você serializou. Está disponível porque o JavaScript permite a seguinte sintaxe:
Você pode usar isso para vários propósitos. Por um lado, é uma maneira confortável de passar dados do servidor back-end para o seu código JavaScript. Portanto, isso geralmente é usado no AJAX.
Você também pode usá-lo como um mecanismo de serialização independente, que é mais simples e ocupa menos espaço que XML. Existem muitas bibliotecas que permitem serializar e desserializar objetos em JSON para várias linguagens de programação.
fonte
Em resumo, é uma notação de script para a transmissão de dados. De certa forma, uma alternativa ao XML, suportando nativamente tipos de dados básicos, matrizes e matrizes associativas (pares nome-valor, chamados Objetos, porque é isso que eles representam).
A sintaxe é aquela usada no JavaScript e o próprio JSON significa "Notação de Objeto JavaScript". No entanto, tornou-se portátil e é usado em outros idiomas também.
Um link útil para detalhes está aqui:
http://secretgeek.net/json_3mins.asp
fonte
O formato JSON é frequentemente usado para serializar e transmitir dados estruturados por uma conexão de rede. É usado principalmente para transmitir dados entre um servidor e um aplicativo da Web, servindo como uma alternativa ao XML.
fonte
JSON é uma notação de objeto JavaScript. É uma maneira muito mais compacta de transmitir conjuntos de dados através de conexões de rede em comparação com XML. Sugiro que o JSON seja usado em qualquer aplicativo semelhante ao AJAX, em que o XML seria a opção "recomendada". A verbosidade do XML aumentará o tempo de download e aumentará o consumo de largura de banda ($$$). Você pode obter o mesmo efeito com o JSON e sua marcação é quase exclusivamente dedicada aos dados em si e não à estrutura subjacente.
fonte
a resposta curta comum é: se você estiver usando o AJAX para fazer solicitações de dados, poderá facilmente enviar e retornar objetos como cadeias JSON. As extensões disponíveis para suporte a Javascript toJSON () chama todos os tipos de javascript para enviar dados ao servidor em uma solicitação AJAX. As respostas AJAX podem retornar objetos como cadeias JSON que podem ser convertidas em objetos Javascript por uma chamada simples de avaliação, por exemplo, se a função AJAX retornar alguma função AAaxxFunctionCallReturningJson
você poderia escrever em Javascript
O JSON também pode ser usado para cargas úteis de serviços da web e outros, mas é realmente conveniente para os resultados do AJAX.
fonte
Eu gosto do JSON principalmente porque é muito conciso . Para o conteúdo da web que pode ser compactado com gzip, isso não é necessariamente um grande problema (por isso, x x html é tão popular). Mas há ocasiões em que isso pode ser benéfico.
Por exemplo, em um projeto, eu estava transmitindo informações que precisavam ser serializadas e transmitidas via XMPP . Como a maioria dos servidores limita a quantidade de dados que você pode transmitir em uma única mensagem, achei útil usar o JSON sobre a alternativa óbvia, XML.
Como um bônus adicional, se você conhece Python ou Javascript, já conhece o JSON e pode interpretá-lo sem muito treinamento.
fonte
O que é JSON?
JavaScript Object Notation (JSON) é um formato leve de intercâmbio de dados inspirado nos literais de objetos de JavaScript.
Os valores JSON podem consistir em:
objetos (coleções de pares nome-valor) matrizes (listas ordenadas de valores) cadeias (entre aspas duplas) números verdadeiros, falsos ou nulos
JSON é independente de idioma.
JSON com PHP?
Após o PHP Versão 5.2.0, a extensão JSON é decodificada e codifica as funcionalidades como padrão.
Json_encode - retorna a representação JSON dos valores Json_decode - Decodifica a sequência JSON Json_last_error - Retorna o último erro ocorrido.
Sintaxe e regras JSON?
A sintaxe JSON é derivada da sintaxe da notação de objeto JavaScript:
Os dados estão em pares nome / valor Os dados são separados por vírgulas Aparelhos encaracolados mantêm objetos Parênteses retos retêm matrizes
fonte
Temos que fazer um projeto na faculdade e enfrentamos um grande problema, chamado de mesma política de origem. Entre outras coisas, o método XMLHttpRequest do Javascript não pode fazer solicitações para domínios que não sejam o domínio em que o site está.
Por exemplo, você não pode fazer uma solicitação para www.otherexample.com se o site estiver em www.example.com. JSONRequest permite isso, mas você obterá resultado no formato JSON se esse site permitir (por exemplo, ele possui um serviço da web que retorna mensagens em JSON). Esse é um problema em que você poderia usar JSON, talvez.
Aqui está algo prático: Yahoo JSON
fonte
A diferença entre JSON e sintaxe convencional seria a seguinte (em Javascript)
Convencional
Com JSON
se usarmos JSON, podemos definir de maneira diferente como
O importante é lembrar que, se tivermos que construir a classe ou modal "Employee" com 100 elementos sem o método JSON, precisamos analisar tudo ao criar a classe. Porém, com o JSON, podemos definir os objetos embutidos apenas quando um novo objeto para a classe é definido.
portanto, esta linha abaixo é a maneira de fazer as coisas com JSON (apenas uma maneira simples de definir as coisas)
fonte
Às vezes, o tecnicismo é dado onde não é necessário, e embora muitas das principais respostas votadas sejam exatamente técnicas e específicas, pessoalmente não acho que sejam mais fáceis de entender ou sucintas, como pode ser encontrado na Wikipedia ou em documentação oficial.
A maneira como gosto de pensar no JSON é exatamente o que é - uma linguagem dentro de um mundo de diferentes línguas. No entanto, a diferença entre JSON e outros idiomas é que "todos" "falam" JSON, junto com seu "idioma nativo".
Usando um exemplo do mundo real, vamos fingir que temos três pessoas. Uma pessoa fala igbo como sua língua nativa. A segunda pessoa gostaria de interagir com a primeira pessoa, no entanto, a primeira pessoa fala ioruba como sua primeira língua.
O que podemos fazer?
Felizmente, a terceira pessoa no nosso exemplo cresceu falando Inglês, mas também acontece de falar tanto Igbo e Yoruba como segundas línguas, e assim pode agir como um intermediário entre os dois primeiros indivíduos.
No mundo da programação, a primeira "pessoa" é Python, a segunda "pessoa" é Ruby e a terceira "pessoa" é JSON, que por acaso consegue "traduzir" Ruby para Python e vice-versa! Agora, obviamente, essa analogia não é perfeita, mas, como alguém bilíngue, acredito que seja uma maneira fácil de ver como o JSON interage com outras linguagens de programação.
fonte
É muito simples. JSON significa Java Script Object Notation. Pense nisso como uma alternativa ao uso de XML para transferir dados entre componentes de software.
Por exemplo, recentemente escrevi vários serviços da Web que retornaram JSON, e alguns desenvolvedores de Javascript escreveram códigos que chamavam os serviços e consumiam as informações retornadas nesse formato.
fonte
JSON (notação de objeto Javascript) é um formato de dados leve para troca / transferência de dados. Seu par de valores-chave é o JavaScript. Para a API REST, é amplamente utilizado para transferência de dados do servidor para o cliente. Atualmente, muitos dos sites de mídia social estão usando isso. Embora eu não veja isso tão robusto quanto XML em relação aos tipos de dados. XML possui tipos de dados muito ricos e XSD. JSON está faltando um pouco nisso.
Para a mesma quantidade de dados de string, o JSON será mais leve se comparado ao XML, pois o XML possui todas as tags de abertura e fechamento, etc.
fonte
No contexto Java, uma razão pela qual o JSON pode querer ser usado é que ele fornece uma alternativa muito boa à estrutura de serialização do Java, que demonstrou (historicamente) estar sujeita a algumas vulnerabilidades bastante sérias.
Joshua Bloch discute isso detalhadamente no Item 85 "Preferências alternativas à serialização Java" (Java eficaz 3ª edição)
A serialização de Java foi inicialmente concebida para converter estruturas de dados em um formato que pudesse ser facilmente transmitido ou armazenado. O JSON atende a esse requisito, sem as explorações sérias mencionadas acima.
fonte
Tente o seguinte código para analisar sua resposta php json: read.php
server.php
fonte