Neste capítulo apresentaremos como usar a linguagem PHP para codificar e decodificar objetos JSON.
A extensão JSON foi integrada no php5.2.0 e superior.
função | descrever |
---|---|
json_encode | Variáveis de codificação JSON |
json_decode | Decodifique strings formatadas em JSON e converta-as em variáveis PHP |
json_last_error | Retorna o último erro ocorrido |
PHP json_encode() é usado para codificar variáveis JSON. Esta função retorna dados JSON se executada com sucesso, caso contrário, retorna FALSE.
string json_encode ($valor [, $opções = 0])
valor : o valor a ser codificado. Esta função é válida apenas para dados codificados em UTF-8.
opções : Máscara binária composta pelas seguintes constantes: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT
O exemplo a seguir demonstra como converter um array PHP em dados no formato JSON:
<?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); ;?>
O resultado da execução do código acima é:
{"a":1,"b":2,"c":3,"d":4,"e":5}
O exemplo a seguir demonstra como converter objetos PHP em dados no formato JSON:
<?php class Emp { public $nome = ""; public $hobbies = ""; public $data de nascimento = ""; hobbies = "esportes"; $e->data de nascimento = data('m/d/Y h:i:s a', "05/08/1974 12:20:03 p"); data('m/d/Y h:i:s a', strtotime("05/08/1974 12:20:03"));
O resultado da execução do código acima é:
{"nome":"sachin","hobbies":"esportes","data de nascimento":"08/05/1974 12:20:03"}
A função PHP json_decode() é usada para decodificar strings formatadas em JSON e convertê-las em variáveis PHP.
json_decode misto ($json_string [,$assoc = false [, $profundidade = 512 [, $options = 0 ]]])
json_string : string JSON a ser decodificada, deve ser dados codificados em UTF-8
assoc : Quando este parâmetro for TRUE, um array será retornado, e quando FALSE, um objeto será retornado.
profundidade : parâmetro do tipo inteiro, que especifica a profundidade da recursão
opções : máscara binária, atualmente apenas JSON_BIGINT_AS_STRING é compatível.
O exemplo a seguir demonstra como decodificar dados JSON:
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; (json_decode($json, verdadeiro));?>
O resultado da execução do código acima é:
objeto(stdClass)#1 (5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5)}array(5) { ["a"] => int(1) ["b"] => int(2) ["c"] => interno(3) ["d"] => int(4) ["e"] => int(5)}