En este capítulo presentaremos cómo utilizar el lenguaje PHP para codificar y decodificar objetos JSON.
La extensión JSON se ha integrado en php5.2.0 y versiones posteriores.
| función | describir |
|---|---|
| código_json | Variables de codificación JSON |
| json_decode | Decodifica cadenas con formato JSON y conviértelas en variables PHP |
| json_último_error | Devuelve el último error que ocurrió. |
PHP json_encode() se utiliza para codificar variables JSON. Esta función devuelve datos JSON si se ejecuta correctamente; de lo contrario, devuelve FALSO.
cadena json_encode ( $valor [, $opciones = 0])
valor : El valor a codificar. Esta función sólo es válida para datos codificados en UTF-8.
opciones : Máscara binaria que consta de las siguientes 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
El siguiente ejemplo demuestra cómo convertir una matriz PHP a datos en formato JSON:
<?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr) ;?>El resultado de ejecutar el código anterior es:
{"a":1,"b":2,"c":3,"d":4,"e":5}El siguiente ejemplo demuestra cómo convertir objetos PHP a datos en formato JSON:
<?php class Emp { público $nombre = ""; público $aficiones = ""; público $fecha de nacimiento = ""; $e = nuevo Emp(); pasatiempos = "deportes"; $e->fecha de nacimiento = fecha('m/d/Y h:i:s a', "5/8/1974 12:20:03 p"); fecha('m/d/Y h:i:s a', strtotime("5/8/1974 12:20:03")); echo json_encode($e);?>El resultado de ejecutar el código anterior es:
{"nombre":"sachin","aficiones":"deportes","fecha de nacimiento":"08/05/1974 12:20:03 pm"}La función PHP json_decode() se utiliza para decodificar cadenas con formato JSON y convertirlas en variables PHP.
json_decode mixto ($json_string [,$assoc = false [, $profundidad = 512 [, $opciones = 0 ]]])
json_string : cadena JSON que se va a decodificar, deben ser datos codificados en UTF-8
assoc : cuando este parámetro es VERDADERO, se devolverá una matriz y, cuando sea FALSO, se devolverá un objeto.
profundidad : parámetro de tipo entero que especifica la profundidad de recursión
opciones : máscara binaria, actualmente solo se admite JSON_BIGINT_AS_STRING.
El siguiente ejemplo demuestra cómo decodificar datos JSON:
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; (json_decode($json, verdadero));?>El resultado de ejecutar el código anterior es:
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"] => entero(3) ["d"] => int(4) ["e"] => int(5)}