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
 123456
78 910111213
14151617181920
21222324252627
28293031   

Miercoles 9 de Julio 2025
Semana 28



Java script - Java


-Input type submit con evento onclick
-Maneras de salir de un iframe con java script
-Sintaxis de un list array en java
-Consumir un JSON desde PHP
-Mostrar un tooltip con datos recuperados en jQuery
-Menu desplegable en jQuery
-Llamadas encadenadas de metodos del objeto jQuery
-Funcion ajax en jQuery
-JSON en jQuery
-Pasando datos por los metodos GET y POST en jQuery
-Ajax metodos ajaxStart y ajaxStop en jQuery
-Ajax metodo load en jQuery
-Iteracion por los elementos each en jQuery
-Efecto con el metodo toggle en jQuery
-Efecto con el metodo fadeTo en jQuery
-Efectos con los metodos fadeIn y fadeOut en jQuery
-Efectos con los metodos show y hide en jQuery
-Manipulacion de los elementos del DOM en jQuery
-Evento blur en jQuery
-Evento focus en jQuery
-Evento dblclick en jQuery
-Eventos mousedown y mouseup en jQuery
-Evento mousemove en jQuery
-Evento hover en jQuery
-Eventos mouseover y mouseout en jQuery
-Administracion de eventos con jQuery
-Metodos html y html valor en jQuery
-Metodos addClass y removeClass en jQuery
-Metodos attr y removeAttr en jQuery
-Metodos text, text valor en jQuery
-Seleccion de elementos con la clase CSS definida
-Seleccion de elementos utilizando el selector CSS
-Seleccion de elementos por el tipo de elementos jQ
-Seleccion de un elemento mediante el id jQuery
-Nueva manera de programar JavaScript con jQuery
-Que es el jQuery
-Archivo JavaScript externo
-Propiedad screen del objeto window en java script
-Propiedad location de objeto window en java script
-El objeto window en java script
-Eventos onMouseOver y onMouseOut en java script
-Eventos onFocus y onBlur en java script
-Control TEXTAREA en java script
-Control RADIO en java script
-Control CHECKBOX en java script
-Control SELECT en java script
-Control PASSWORD en java script
-Controles FORM, BUTTON y TEXT en java script
-Formularios y Eventos en java script
-Clase Math en java script
-Clase String en java script
-Clase Array en java script
-Clase Date en java script
-Programacion orientada a objetos en java script
-Funciones que retornan un valor en java script
-Funciones con parametros en java script
-Funciones en java script
-Estructura repetitiva for en java script
-Estructura repetitiva do while en java script
-Concepto de acumulador en java script
-Estructura repetitiva (while) en java script
-Operadores logicos or en las estructuras java s
-Operadores logicos (and) en las estructuras java s
-Estructuras condicionales anidadas en java script
-Estructuras condicionales compuesta en jaca script
-Estructuras condicionales simples en java script
-Estructuras secuenciales en java script
-Entrada de datos por teclado en java script
-Variables en java script
-Que es JavaScript
-Lectura y escritura de archivos en java
-Entrada y salida estandar en Java
-Programa para contar vocales de un fichero en java
-Convertidor de divisas en java
-Form con una ventana nueva
-Seleccionar un elemento html mediante su id
..............................................................................................................................................................................................................................................
(Contacto)..
Esta web utiliza cookies para obtener datos estadísticos de la navegación de sus usuarios. Política de privacidad y Aviso legal