Muitas pessoas se perguntam como converter array em JSON ou JSON em Array. Em minha experiência profissional, vi diversos desenvolvedores PHP criando suas próprias rotinas para fazer esta conversão.
A boa notícia é que o PHP possui uma função nativa para trabalhar corretamente com JSON. Neste artigo, vou explicar o que é JSON e como você pode utiliza-lo em seus projetos.
O que é JSON?
JSON (JavaScript Object Notation) é um formato leve de troca de dados entre serviços. Apesar do nome ter Javascript como referência, não quer dizer que apenas esta linguagem pode utilizar JSON para trafegar informações.
JSON é usado em diversos serviços em diferentes linguagens de programação por ser simples e leve para enviar dados pela rede, mais leve do que o XML.
{
"primeiroNome": "Rodrigo",
"ultimoNome": "Macedo",
"endereco": {
"rua": "Rua Gary Vee",
"cidade": "Rio de Janeiro",
"estado": "RJ",
"cep": 10021
},
"Telefones": [
"21 2222-33333",
"21 3333-44444"
]
}
Bastante simples de ler (quando bem formato, certo)? Agora que você sabe os benefícios de usar JSON, vou ensinar como criar esta formatação em seu projetos.
Agora vamos aprender a criar uma estrutura JSON usando PHP.
Criando JSON a partir de um Array
Agora, vamos demonstrar como criar um JSON a partir de um array criado por nós. Para isso, basta usar o método json_encode e enviar o array.
$json_dados = array ('id'=>1,'nome'=>"Rodrigo",'Pais'=>'Brasil',"Trabalho"=>array("WiseBits","Empresa2"));
//imprime o array com formatação JSON.
echo json_encode($json_dados);
Bastante simples. Agora, vamos mostrar fazer o caminho inverso.
// Vamos inserir em uma string, uma mensagem em formatação JSON.
$json_string='{"id":1,"nome":"Rodrigo","pais":"brasil","trabalho":["WiseBits","OutraEmpresa"]} ';
// Agora, vamos converter para array.
$objArray=json_decode($json_string);
//Vamos imprimir os dados que precisamos.
echo $objArray->nome; //Exibirá Rodrigo
echo $objArray->trabalho[0]; //Exibirá Wisebits
Espero que tenha gostado deste artigo. Se tiver alguma dúvida sobre o uso do JSON no PHP, você pode entrar em contato direto comigo, ou usar os comentários abaixo. Terei o maior prazer em te responder.