linguagem JSON. JSON: Básico
Certamente você já ouviu falar em JSON. O que é? O que ele pode fazer e como usá-lo?
Neste tutorial, cobriremos os fundamentos do JSON e os seguintes pontos:
- O que é JSON?
- Para que é usado o JSON?
- Como criar uma string JSON?
- Um exemplo simples de uma string JSON.
- Vamos comparar JSON e XML.
- Como trabalhar com JSON em JavaScript e PHP?
JSON é uma maneira simples e baseada em texto de armazenar e transmitir dados estruturados. Com uma sintaxe simples, você pode armazenar facilmente qualquer coisa, desde um único número até strings, arrays e objetos em texto simples. Você também pode vincular matrizes e objetos para criar estruturas de dados complexas.
Depois que a string JSON é criada, é fácil enviá-la para outro aplicativo ou local na rede porque é um texto simples.
JSON tem as seguintes vantagens:
- É compacto.
- Suas frases são fáceis de ler e compor tanto por humanos quanto por computadores.
- Pode ser facilmente convertido em uma estrutura de dados para a maioria das linguagens de programação (números, strings, booleanos, arrays, etc.)
- Muitas linguagens de programação possuem funções e bibliotecas para leitura e criação de estruturas JSON.
O nome JSON significa JavaScript Object Notation. Como o nome sugere, é baseado em uma forma de definir objetos (muito parecido com a criação de arrays associativos em outras linguagens) e arrays.
Para que é usado o JSON?O uso mais comum de JSON é enviar dados do servidor para o navegador. Normalmente, os dados JSON são entregues usando AJAX, o que permite que o navegador e o servidor se comuniquem sem a necessidade de recarregar a página.
Você também pode usar JSON para enviar dados do navegador para o servidor, passando uma string JSON como parâmetro para solicitações GET ou POST. Mas esse método é menos comum, pois a transferência de dados por meio de solicitações AJAX pode ser simplificada. Por exemplo, o ID do produto pode ser incluído no URL como parte de uma solicitação GET.
A biblioteca jQuery possui vários métodos, como getJSON() e parseJSON(), que facilitam a recuperação de dados usando JSON por meio de solicitações AJAX.
Como criar uma string JSON?Existem algumas regras básicas para criar uma string JSON:
- A string JSON contém uma matriz de valores ou um objeto (uma matriz associativa de pares nome/valor).
- Variedade está entre colchetes ([ e ]) e contém uma lista de valores separados por vírgula.
- Um objeto está entre chaves (( e )) e contém uma lista separada por vírgulas de pares nome/valor.
- par nome/valor consiste no nome do campo entre aspas duplas, seguido por dois pontos (:) e o valor do campo.
- Significado em uma matriz ou objeto pode haver:
- Número (inteiro ou ponto flutuante)
- String (entre aspas duplas)
- Valor booleano (verdadeiro ou falso)
- Outra matriz (entre colchetes)
- Outro objeto (entre chaves)
- valor nulo
Para incluir aspas duplas em uma string, você precisa usar uma barra invertida: \" . Assim como acontece com muitas linguagens de programação, você pode colocar caracteres de controle e códigos hexadecimais em uma string precedendo-os com uma barra invertida. Consulte o site JSON para obter detalhes.
Exemplo simples de string JSONAbaixo está um exemplo de pedido no formato JSON:
( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [e-mail protegido]", "contents": [ ( "productID": 34, "productName": "Superproduto", "quantidade": 1 ), ( "productID": 56, "productName": "Produto milagroso", "quantidade": 3)], "orderCompleted": verdadeiro)
Vejamos a linha em detalhes:
- Criamos um objeto usando chaves (( e )).
- O objeto possui vários pares nome/valor: "orderID": 12345 Uma propriedade com o nome "orderId" e um valor inteiro 12345 "shopperName": "Vanya Ivanov" uma propriedade com o nome "shopperName" e o valor da string "Vanya Ivanov" " "shopperEmail": " [e-mail protegido]" Uma propriedade chamada "shopperEmail" com um valor de string " [e-mail protegido]" "contents": [ ... ] Uma propriedade chamada "contents" cujo valor é uma matriz "orderCompleted": true Uma propriedade chamada "orderCompleted" e o valor booleano true
- Existem 2 objetos na matriz "contents" que representam itens individuais no pedido. Cada objeto contém 3 propriedades: productID , productName e amount .
A propósito, como o JSON é baseado na declaração de objetos JavaScript, você pode transformar de forma rápida e fácil a string JSON acima em um objeto JavaScript:
var carrinho = ( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [e-mail protegido]", "contents": [ ( "productID": 34, "productName": "Superproduto", "quantidade": 1 ), ( "productID": 56, "productName": "Produto milagroso", "quantidade": 3)], "orderCompleted": verdadeiro);
Comparação de JSON e XMLDe muitas maneiras, você pode pensar no JSON como uma alternativa ao XML, pelo menos no espaço de aplicativos da web. O conceito de AJAX foi originalmente baseado no uso de XML para transferir dados entre o servidor e o navegador. Mas nos últimos anos, o JSON tornou-se cada vez mais popular para o transporte de dados AJAX.
Embora o XML seja uma tecnologia comprovada usada em um grande número de aplicações, o JSON tem a vantagem de ser um formato de dados mais compacto e mais fácil de reconhecer.
Esta é a aparência do objeto de exemplo acima em XML:
ID do pedido 12345 compradorNome Vanya Ivanov compradorE-mail [e-mail protegido] conteúdo productID 34 productName Super quantidade de produto 1 productID 56 productName Quantidade de produto milagroso 3 pedidoConcluído verdadeiro
A versão XML é significativamente maior. Na realidade, tem 1.128 caracteres, enquanto a versão JSON tem apenas 323 caracteres. A versão XML também é bastante difícil de entender.
Claro, este é um exemplo radical. E é possível criar um registro XML mais compacto. Mas mesmo assim será significativamente mais longo que o equivalente JSON.
Trabalhando com uma string JSON em JavaScriptJSON tem um formato simples, mas criar uma string JSON manualmente é bastante tedioso. Além disso, muitas vezes você precisa pegar uma string JSON e converter seu conteúdo em uma variável que pode ser usada no código.
A maioria das linguagens de programação possui ferramentas para converter facilmente variáveis em strings JSON e vice-versa.
Criando uma string JSON a partir de uma variávelJavaScript possui um método JSON.stringify() integrado que pega uma variável e retorna uma string JSON representando seu conteúdo. Por exemplo, vamos criar um objeto JavaScript que contém as informações do pedido do nosso exemplo e, em seguida, criar uma string JSON a partir dele:
var carrinho = ( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [e-mail protegido]", "contents": [ ( "productID": 34, "productName": "Superproduto", "quantidade": 1 ), ( "productID": 56, "productName": "Produto milagroso", "quantidade": 3 ) ], "orderCompleted": true ); alerta (JSON.stringify(cart));
Este código produzirá:
Observe que o método JSON.stringify() retorna uma string JSON sem espaços. É mais difícil de ler, mas é mais compacto para transmissão pela rede.
Existem várias maneiras de analisar uma string JSON em JavaScript, mas a mais segura e confiável é usar o método JSON.parse() integrado. Ele recebe uma string JSON e retorna um objeto ou array JavaScript que contém os dados. Por exemplo:
var jsonString = " \ ( \ "orderID": 12345, \ "shopperName": "Vanya Ivanov", \ "shopperEmail": " [e-mail protegido]", \ "conteúdo": [ \ ( \ "productID": 34, \ "productName": "Super produto", \ "quantidade": 1 \), \ ( \ "productID": 56, \ "productName": "Bens milagrosos", \"quantidade": 3\ ) \ ], \"pedidoCompletado": verdadeiro \ ) \"; var carrinho = JSON.parse(jsonString); alerta(cart.shopperEmail); alerta(carrinho.contents.productName);
Criamos uma variável jsonString que contém a string JSON do nosso pedido de exemplo. Em seguida, passamos essa string para o método JSON.parse(), que cria um objeto contendo os dados JSON e os armazena na variável cart. Tudo o que resta é verificar exibindo as propriedades do objeto shopperEmail e productName da matriz de conteúdo.
Como resultado, obteremos a seguinte saída:
Em uma aplicação real, seu código JavaScript receberia o pedido como uma string JSON em uma resposta AJAX do script do servidor, passaria a string para o método JSON.parse() e usaria os dados para exibi-los na página do usuário.
JSON.stringify() e JSON.parse() têm outros recursos, como usar funções de retorno de chamada para converter determinados dados de maneira personalizada. Essas opções são muito úteis para converter vários dados em objetos JavaScript adequados.
Trabalhando com uma string JSON em PHPPHP, assim como JavaScript, possui funções integradas para trabalhar com strings JSON.
Criando uma string JSON a partir de uma variável PHPA função json_encode() pega uma variável PHP e retorna uma string JSON representando o conteúdo da variável. Aqui está nosso exemplo de pedido, escrito em PHP:
Este código retorna exatamente a mesma string JSON do exemplo de JavaScript:
("orderID":12345,"shopperName":"Vanya Ivanov","shopperEmail":" [e-mail protegido]","contents":[("productID":34,"productName":"Superproduto","quantidade":1),("productID":56,"productName":"Produto milagroso","quantidade": 3)],"pedidoCompletado":true)
Em uma aplicação real, seu script PHP enviará esta string JSON como parte de uma resposta AJAX para o navegador, onde o código JavaScript, usando o método JSON.parse(), irá analisá-la de volta em uma variável para exibição na página do usuário .
Você pode passar vários sinalizadores como segundo argumento para a função json_encode(). Com a ajuda deles, você pode alterar os princípios de codificação do conteúdo das variáveis em uma string JSON.
Crie uma variável a partir de uma string JSONPara converter uma string JSON em uma variável PHP, use o método json_decode(). Vamos substituir nosso exemplo de JavaScript pelo método JSON.parse() com código PHP:
Tal como acontece com JavaScript, este código produzirá:
[e-mail protegido] Produto milagroso
Por padrão, a função json_decode() retorna objetos JSON como objetos PHP. Existem objetos PHP genéricos da classe stdClass. É por isso que usamos -> para acessar as propriedades do objeto no exemplo acima.
Se você precisa de um objeto JSON como um array PHP associado, você precisa passar true como o segundo argumento para a função json_decode(). Por exemplo:
$carrinho = json_decode($jsonString, true); echo $cart["shopperEmail"] . "
"; echo $cart["contents"]["productName"] . "
";
Este código produzirá a mesma saída:
[e-mail protegido] Produto milagroso
Você também pode passar outros argumentos para a função json_decode() para especificar a profundidade da recursão e como lidar com números inteiros grandes.
ConclusãoEmbora o JSON seja fácil de entender e usar, é uma ferramenta muito útil e flexível para transferência de dados entre aplicativos e computadores, especialmente ao usar AJAX. Se você está planejando desenvolver uma aplicação AJAX, não há dúvida de que JSON se tornará uma ferramenta essencial em seu workshop.
O que é JSON e o que ele pode fazer? Neste artigo, você aprenderá como usar JSON para trabalhar facilmente com dados. Também veremos como trabalhar com JSON usando PHP e JavaScript.
Se você desenvolveu sites ou aplicações web em geral, é provável que já tenha ouvido falar em JSON, pelo menos de passagem. Mas o que exatamente significa JSON? O que esse formato de dados pode fazer e como pode ser usado?
Neste artigo aprenderemos o básico para trabalhar com o formato json. Seguiremos os seguintes tópicos:
- O que é o formato JSON?
- Como criar strings JSON?
- Exemplo simples de dados JSON
- Comparando JSON com XML
Vamos começar!
O que é o formato JSON?JSON é uma maneira simples e baseada em texto de armazenar e transmitir dados estruturados. Com uma sintaxe simples, você pode armazenar facilmente números e strings simples, bem como matrizes e objetos, usando nada mais que texto. Você também pode vincular objetos e matrizes, o que permite criar estruturas de dados complexas.
Depois que a string JSON for criada, ela poderá ser facilmente enviada para qualquer aplicativo ou computador, pois é apenas texto.
JSON tem muitas vantagens:
- É compacto
- É legível por humanos e fácil de ler por computadores
- Pode ser facilmente convertido em formatos de software: valores numéricos, strings, formato booleano, valor nulo, arrays e arrays associativos.
- Quase todas as linguagens de programação possuem funções que permitem ler e criar dados no formato json.
Literalmente, a abreviatura JSON significa JavaScript Object Notation. Conforme descrito anteriormente, este formato é baseado na criação de objetos, algo semelhante aos arrays associativos em outras linguagens de programação.
Para que finalidades o JSON é usado?Acima de tudo, json é usado para trocar dados entre javascript e servidor (php). Em outras palavras, para a tecnologia ajax. Isso é muito conveniente quando você passa múltiplas variáveis ou matrizes de dados inteiras.
Aqui está o que parece em um exemplo:
É assim que a imagem é ampliada sem recarregar a página no navegador. Isto é muito conveniente quando precisamos receber dados parciais ou transferir uma pequena quantidade de informações para o servidor.
O jQuery favorito de todos possui as funções getJSON() e parseJSON(), que ajudam você a trabalhar com o formato por meio de solicitações ajax.
Como criar strings JSON?Abaixo estão as regras básicas para a criação de strings JSON:
- A string JSON contém uma matriz de valores e um objeto (uma matriz associativa com pares nome/valor).
- A matriz deve ser colocada entre colchetes, [ e ] e pode conter uma lista de valores separados por vírgula.
- Os objetos são agrupados usando braços encaracolados (e) e também contêm pares nome/valor separados por vírgula.
- Os pares nome/valor consistem no nome do campo (entre aspas duplas) seguido por dois pontos (:) seguido pelo valor do campo.
- Os valores em um array ou objeto podem ser:
- Numérico (inteiro ou fração pontilhada)
- Strings (entre aspas duplas)
- Booleano (verdadeiro ou falso)
- Outras matrizes (entre colchetes [ e ])
- Outros objetos (enrolados em braços encaracolados (e))
- Valor nulo
Importante! Se você usar aspas duplas em valores, escape-as com uma barra invertida: \". Você também pode usar caracteres codificados em hexadecimal, assim como faz em outras linguagens de programação.
Exemplo simples de dados JSONO exemplo a seguir mostra como você pode salvar dados no “carrinho” de uma loja online usando o formato JSON:
("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [e-mail protegido]", "conteúdo": [ ( "productID": 34, "productName": "SuperWidget", "quantidade": 1 ), ( "productID": 56, "productName": "WonderWidget", "quantidade": 3 ) ], "orderCompleted": verdadeiro)
Vamos dividir esses dados peça por peça:
Finalmente, como o JSON é idêntico aos objetos em JavaScript, você pode facilmente pegar este exemplo e criar um objeto JavaScript a partir dele:
var carrinho = ("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [e-mail protegido]", "conteúdo": [ ( "productID": 34, "productName": "SuperWidget", "quantidade": 1 ), ( "productID": 56, "productName": "WonderWidget", "quantidade": 3 ) ], "orderCompleted": verdadeiro);
Comparando JSON com XMLNa maioria dos casos, você pensará no JSON como uma alternativa ao XML – pelo menos em aplicativos da web. O conceito Ajax originalmente usa XML para trocar dados entre o servidor e o navegador, mas nos últimos anos o JSON se tornou mais popular para transmitir dados Ajax.
Embora XML seja uma tecnologia testada e comprovada usada por muitos aplicativos, as vantagens do formato JSON são que ele é mais compacto e mais fácil de escrever e ler.
Aqui está o exemplo JSON acima, apenas reescrito no formato XML:
ID do pedido 12345 compradorNome John Smith compradorE-mail [e-mail protegido] conteúdo productID 34 productName SuperWidget quantidade 1 productID 56 productName WonderWidget quantidade 3 orderCompleted true
Como você pode ver, é várias vezes mais longo que JSON. Na verdade, este exemplo tem 1.128 caracteres, enquanto a versão JSON tem apenas 323 caracteres. A versão XML também é mais difícil de ler.
Naturalmente, não se pode julgar apenas por um exemplo, mas mesmo pequenas quantidades de informação ocupam menos espaço no formato JSON do que no XML.
Como trabalhar com JSON via PHP e JS?Agora chegamos à parte mais interessante – o lado prático do formato JSON. Primeiro, vamos prestar homenagem ao JavaScript, depois veremos como você pode manipular JSON por meio de PHP.
Criando e lendo formato JSON usando JavaScriptEmbora o formato JSON seja simples, é difícil escrever manualmente ao desenvolver aplicações web. Além disso, muitas vezes você precisa converter strings JSON em variáveis e usá-las em seu código.
Felizmente, muitas linguagens de programação fornecem ferramentas para trabalhar com strings JSON. A ideia principal é:
Para criar strings JSON, você começa com variáveis contendo alguns valores e depois os passa por uma função que transforma os dados em uma string JSON.
Lendo strings JSON, você começa com uma string JSON contendo determinados dados, passa a string por uma função que cria variáveis contendo os dados.
Vamos ver como isso é feito em JavaScript.
Criando uma string JSON a partir de uma variável JavaScriptJavaScript possui um método integrado, JSON.stringify(), que pega uma variável javascript e retorna uma string json representando o conteúdo da variável. Por exemplo, vamos usar um objeto criado anteriormente e convertê-lo em uma string JSON.
var carrinho = ("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [e-mail protegido]", "conteúdo": [ ( "productID": 34, "productName": "SuperWidget", "quantidade": 1 ), ( "productID": 56, "productName": "WonderWidget", "quantidade": 3 ) ], "orderCompleted": true ); alerta (JSON.stringify(cart));
Isto é o que aparecerá na tela:
("orderID":12345,"shopperName":"John Smith","shopperEmail":" [e-mail protegido]", "contents":[("productID":34,"productName":"SuperWidget","quantidade":1), ("productID":56,"productName":"WonderWidget","quantidade":3) ], "pedidoCompletado":true)
Observe que JSON.stringify() gera strings JSON sem espaços. É difícil de ler, mas é mais compacto, o que é importante no envio de dados.
Criando uma variável JavaScript a partir de uma string JSONExistem várias maneiras de analisar strings JSON, a mais aceitável e segura é usando o método JSON.parse(). Ele pega uma string JSON e retorna um objeto ou array JavaScript contendo os dados JSON. Aqui está um exemplo:
var jsonString = " \ ( \ "orderID": 12345, \ "shopperName": "John Smith", \ "shopperEmail": " [e-mail protegido]", \ "conteúdo": [ \ ( \ "productID": 34, \ "productName": "SuperWidget", \ "quantidade": 1 \), \ ( \ "productID": 56, \ "productName": " WonderWidget", \ "quantidade": 3 \ ) \ ], \ "orderCompleted": true \ ) \ "; var carrinho = JSON.parse(jsonString); alerta(cart.shopperEmail); alerta(carrinho.contents.productName);
Aqui criamos uma variável, jsonString, que contém a string JSON dos exemplos fornecidos anteriormente. Em seguida, passamos essa string por JSON.parse() para criar um objeto contendo dados JSON, que foram armazenados na variável cart. Por fim, verificamos a disponibilidade dos dados e exibimos algumas informações usando a janela modal de alerta.
As seguintes informações serão exibidas:
Em uma aplicação web real, seu código JavaScript deve receber uma string JSON como resposta do servidor (após enviar uma solicitação AJAX), então analisar a string e exibir o conteúdo do carrinho ao usuário.
Criando e lendo o formato JSON usando PHPO PHP, assim como o JavaScript, possui funções que permitem converter variáveis para o formato JSON e vice-versa. Vamos dar uma olhada neles.
Criando uma string JSON a partir de uma variável PHPJson_encode() pega uma variável PHP e retorna uma string JSON representando os dados da variável. Aqui está nosso exemplo de “carrinho” escrito em PHP:
Este código produz exatamente o mesmo resultado que o exemplo JavaScript – uma string JSON válida representando o conteúdo das variáveis:
("orderID":12345,"shopperName":"John Smith","shopperEmail":" [e-mail protegido]","contents":[("productID":34,"productName":"SuperWidget","quantidade":1),("productID":56,"productName":"WonderWidget","quantidade":3) ],"pedidoCompletado":true)
Na realidade, seu script PHP deve enviar uma string JSON como resposta a uma solicitação AJAX, onde o JavaScript usará JSON.parse() para transformar a string em variáveis.
Na função json_encode(), você pode especificar parâmetros adicionais que permitem converter alguns caracteres em hexadecimal.
Criando uma variável PHP a partir de uma string JSONSemelhante ao acima, existe uma função json_decode() que permite decodificar strings JSON e colocar o conteúdo em variáveis.
Tal como acontece com o JavaScript, este código produzirá o seguinte:
[e-mail protegido] WonderWidget
Por padrão, json_decode() retorna objetos JSON como objetos PHP. Semelhante à sintaxe regular, usamos -> para acessar as propriedades de um objeto.
Se posteriormente você quiser usar os dados como um array associativo, basta passar o segundo parâmetro true para a função json_decode(). Aqui está um exemplo:
$carrinho = json_decode($jsonString, true); echo $cart["shopperEmail"] . "
"; echo $cart["contents"]["productName"] . "
";
Isso produz o mesmo resultado:
[e-mail protegido] WonderWidget
Você também pode passar argumentos adicionais para a função json_decode() para determinar o processamento de grandes números e recursão.
Concluindo sobre o formato JSONSe você for criar uma aplicação web utilizando a tecnologia Ajax, certamente utilizará o formato JSON para troca de dados entre o servidor e o navegador.
JSON é um formato de texto para registro de dados. Ele permite representar em forma de texto um único número ou string e estruturas complexas, por exemplo, matrizes com dados. Usar este formato de gravação é conveniente porque é legível e intuitivo, ao mesmo tempo que permite armazenar estruturas de dados muito complexas. Além disso, é mais compacto que o xml, por isso, na minha opinião, é mais preferível para a troca de dados entre um navegador web e um servidor.
Sintaxe JSON com exemplosO formato json geralmente é escrito em 2 variantes:
1. Sequência de valores. Por exemplo, a sequência 10, 15 e “teste” no formato JSON ficaria assim:
2. Registro na forma de pares chave: valor. Por exemplo:
(“Nome completo”: “Ivanov Sergey”, “Data de nascimento”: “09/03/1975”)
Um exemplo um pouco mais complexo:
("Nome completo": "Ivanov Sergey", "Endereço": ("Cidade": "Moscou", "Rua": "Pyatnitskaya", "Casa": "35") )
Funções PHP para trabalhar com formato JSONNa linguagem PHP desde a versão 5.2. existem apenas 4 funções:
- json_decode - Decodifica uma string JSON (obtém dados de uma string no formato json)
- json_encode – Retorna uma representação JSON dos dados (converte os dados em uma string json)
- json_last_error_msg – Retorna uma string indicando a mensagem de erro da última chamada para json_encode() ou json_decode()
- json_last_error – Retorna o último erro
Basicamente, na maior parte, apenas duas funções são usadas: json_encode e json_decode. Não vou entrar em detalhes sobre sua sintaxe, você pode consultar php.net para mais detalhes. Exemplo de uso:
$arr1 = matriz(0,1,2); $json_str = json_encode($arr1); echo $json_str; // gerará uma string json: $arr2 = json_decode($json_str); eco $arr2; // produzirá: 1
Observação: ao codificar dados em russo para o formato JSON, a função json_encode converte caracteres russos em Unicode, ou seja, substitui-os por \uXXXX e, assim, a string json torna-se ilegível para humanos (mas compreensível para o navegador). Se quiser evitar a conversão para Unicode (por exemplo, ao depurar código), você pode simplesmente usar a opção JSON_UNESCAPED_UNICODE.
Além disso, para que barras de escape não sejam adicionadas durante a codificação e para que strings com números sejam codificadas como números, você pode usar JSON_UNESCAPED_SLASHES e JSON_NUMERIC_CHECK. Como resultado, para tornar a string json legível por humanos, faremos, por exemplo, isto:
$arr = array("fio" => "Ivanov Sergey", "idade" => "32", "vk_url" => "https://vk.com/id11111"); echo json_encode($arr, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK);
Sem usar essas opções a linha ficaria assim:
( "fio" : "\u0418\u0432\u0430\u043d\u043e\u0432 \u0421\u0435\u0440\u0433\u0435\u0439", "idade" : "32", "vk_url": "https:\/\ /vk.com\/id11111" )
e usando as opções, obtemos uma linha legível:
( "fio": "Ivanov Sergey", "idade": 32, "vk_url": "https://vk.com/id11111" )
Mais um ponto: se você deseja que a função json_decode retorne um array ao decodificar uma string json, basta adicionar um segundo parâmetro à função igual a true.
$json_str = "("a":1, "b":2, "c":3 )"; $obj = json_decode($json_str); // obtém o objeto echo $obj->a; // produzirá 1 $arr = json_decode($json_str, true); // obtém um array associativo echo $arr["a"]; // irá imprimir 1
Isso conclui minha revisão das funções PHP.
Funções JavaScript para trabalhar com formato JSONVamos começar com o fato de que o formato JSON foi originalmente inventado para a linguagem JavaScript e depois se tornou simplesmente um formato de texto separado usado em diferentes idiomas. Aparentemente, é por isso que a sintaxe JSON é muito semelhante à sintaxe para escrever objetos e arrays comuns.
// Exemplo de array em JavaScript arr = ; alerta(arr); // exibirá 1 // Exemplo de um objeto em JavaScript obj = ( "name": "Vasya", "age": 35, "isAdmin": false ) alert(obj.name); // imprimirá "Vasya"
Funções JavaScript usadas para converter de e para o formato JSON:
- JSON.parse - decodificando uma string JSON (convertendo uma string em objetos e/ou arrays)
- JSON.stringify - retorna uma representação JSON de dados (convertendo objetos e/ou arrays em uma string json)
Um exemplo simples de decodificação de uma string json em um array com números:
Str = ""; arr = JSON.parse(str); alerta(arr); // irá imprimir 1
Um exemplo de conversão (serialização) de um objeto em uma string JSON:
Obj = ( "nome": "Vasya", "idade": 35, "isAdmin": false ) alert(JSON.stringify(obj)); // será exibido ("nome":"Vasya","idade":35,"isAdmin":false)
Ao serializar (converter) um objeto em uma string JSON, o método toJSON deste objeto é chamado, se existir. Se não houver método, todas as propriedades do objeto serão listadas. Um exemplo de conversão de um objeto com o método toJSON:
Obj = ( "nome": "Vasya", "idade": 35, "isAdmin": false, toJSON: function() ( return this.age; ) ) alert(JSON.stringify(obj)); // imprimirá 35
Exemplos de aplicação prática do formato JSONNa verdade, eu pessoalmente uso o formato JSON em 2 situações principais:
1. Transferência de dados entre o navegador e o servidor usando solicitações Ajax.Por exemplo, temos uma página na qual precisamos atualizar os dados sem recarregar a página. Digamos que você precise de informações com uma lista de funcionários e seus dados para serem “baixados” do servidor.
Em JavaScript, usando jQuery, simplificamos e exibimos os dados em forma de tabela no navegador:
$.getJSON("get-info.php").success(function(data) ( // solicitação ajax, os dados do servidor serão gravados na variável de dados htmlstr = "