Temas > Programacion > Java script - Java > Producir JSON desde PHP
Julio

Producir JSON desde PHP
En este artículo vamos a mostrar cómo crear un 
JSON desde PHP con las funciones nativas del lenguaje
de programación del lado del servidor. Además veremos 
varias particularidades de la creación de cadenas
de texto con notación JSON desde PHP, que son importantes 
de conocer para no caer en problemas comunes de este tipo 
de operaciones.
Existen diversas formas para implementar funcionalidades 
de procesamiento de archivos JSON desde PHP. 
En concreto en este artículo vamos a ver las funciones nativas 
de PHP que sirven para este tema, que se encuentran 
disponibles desde la versión de PHP 5.2. Cabe recordar, no 
obstante, que estas mismas funciones nativas se pueden 
instalar por separado, si es que no las tenemos y que existen 
otras librerías que también ofrecen posibilidades similares.
Veremos entonces cómo producir cadenas con notación 
JSON a partir de variables simples, arrays y objetos PHP.
Crear un JSON desde PHP
Para crear una cadena para expresar un objeto u otro tipo 
de variable con JSON en PHP se dispone de una función 
llamada json_encode(), que recibe lo que deseamos convertir 
en notación JSON y devuelve una cadena de texto con el JSON 
producido.
Podemos convertir en JSON cualquier cosa que necesitemos, 
como una cadena, una variable numérica, un array -normal o 
asociativo- y objetos con todo tipo de datos dentro. Veremos 
varios ejemplos que ilustrarán este proceso.
<?php //esto no va
$mivariable = "hola";
print_r(json_encode($mivariable));
Esto devuelve:
"hola"
Ahora convertimos un array normal:
$miArray = array(1,4,6,8,3,34.8,9,43);
print_r(json_encode($miArray));
Que devuelve:
[1,4,6,8,3,34.8,9,43]
?>//esto no va
Estos ejemplos anteriores son sin duda quizás demasiado 
simples, pero la cosa empieza a tener sentido cuando se
 convierte un array asociativo en JSON, como se puede ver 
a continuación.
<?php //esto no va
$miArray = array("manzana"=>"verde", "uva"=>"Morada", "fresa"=>"roja");
print_r(json_encode($miArray));
{"manzana":"verde","uva":"Morada","fresa":"roja"}
?>//esto no va
Este resultado ya tiene una forma parecida a lo que estamos 
acostumbrados a ver en JSON. Podríamos fijarnos que la cadena 
que devuelve no tiene saltos de línea e identación de los elementos, 
con lo que la
lectura se dificulta un poco por seres humanos. No obstante, 
podríamos utilizar esa cadena para crear una variable Javascript 
y por supuesto podremos acceder a cualquier valor del JSON, de 
una manera parecida a esta:
<?php //esto no va
<script>
JSONFrutas = eval(<?php echo json_encode($miArray);?>);
alert(JSONFrutas.manzana);
</script>
?>//esto no va
Como se ha visto, para almacenar el JSON en una variable 
Javascript, sin almacenar la propia cadena, sino el objeto que 
representa, tenemos que utilizar la función Javascript eval(). 
Luego podemos acceder a los componentes del JSON como lo 
hacemos con cualquier objeto, variable, operador punto y luego el
nombre de la propiedad a acceder.
Crear un objeto con PHP y convertirlo en JSON
Como decía, lo bonito es que desde PHP podemos convertir
 cualquier objeto que tengamos, para generar
el JSON del mismo y poder enviarlo a Javascript o cualquier otro 
lenguaje o componente que necesitemos que lo procese. El 
mecanismo es exactamente igual, con la salvedad que primero 
tenemos que crear una clase, instanciar un objeto y luego 
convertirlo a JSON con json_encode().
Así crearíamos una clase e instaciaríamos ojetos con ella.
//creo una clase arbol
<?php //esto no va
class NodoArbolDHTML{
    var $nombre;
    var $url;
    var $hijos;
    function __construct($nombre,$url){
         $this->nombre = $nombre;
         $this->url = $url;
    }
    function anadirHijo($nodoHijo, $nombre){        //añadir un hijo
         if (!isset($this->hijos)){
             $this->hijos = array();
         }
         $this->hijos[$nombre] = $nodoHijo;
    }
}
?>//esto no va
Como se ha visto, se ha implementado una clase 
NodoArbolDHTML, con la que podríamos crear una
estructura de árbol. El árbol tiene distintos nodos y cada uno
a su vez tiene un nombre, una URL y un conjunto que hijos, 
que también son nodos del árbol.
Ahora, podríamos instanciar objetos tipo nodo, para crear 
el árbol, de la siguiente manera.
<?php //esto no va
$raiz = new NodoArbolDHTML("Raiz", "http://www.loquesea.com");
$miNodo = new NodoArbolDHTML("Mi arbolito", 
"http://www.oi.com");
$raiz->anadirHijo($miNodo, "loquesea");
$miNodo2 = new NodoArbolDHTML("Mi otro nodo",
 "http://www.as.com");
$raiz->anadirHijo($miNodo, "otro");
?>//esto no va
Con esto ya tenemos la mayor parte del trabajo creado, 
porque para producir el JSON simplemente
tenemos que llamar a la función json_encode(), que ya hemos 
visto repetidas veces.













¿Has olviado tu contraseña?

Pulsa aquí para registrate




Google






LunMarMieJueVieSabDom
    123
45678910
11121314151617
181920 21222324
252627282930 

Jueves 21 de Noviembre 2024
Semana 47

..............................................................................................................................................................................................................................................
(Contacto)..
Esta web utiliza cookies para obtener datos estadísticos de la navegación de sus usuarios. Política de privacidad y Aviso legal