English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP JSON

Una de las aplicaciones comunes de JSON es enviar datos al servidor web/Leer datos del servidor web y mostrar los datos en una página web.

Este capítulo explica cómo intercambiar datos JSON entre el cliente y el servidor PHP.

Funciones JSON de PHP

PHP5.2versión 5.4.0 y superior ya tiene la extensión JSON integrada.

PHP tiene las siguientes funciones integradas para manejar JSON:

FunciónDescripción
json_encode()Devuelve la representación JSON del valor
json_decode()Analizar una cadena JSON
json_last_error()Devuelve el último error ocurrido

Función json_encode()

Se puede usar la función PHP para convertir objetos en PHP a JSON con json_encode().

El archivo dado por json_demo1.php guardar:

  <?php
  $myObj = new stdClass();
  $myObj->name = "Seagull";
  $myObj->age = 22;
  $myObj->city = "New Delhi";
  $myJSON = json_encode($myObj);  /* Convertir un objeto PHP a una cadena JSON */
  
  echo $myJSON;
  ?>

El siguiente ejemplo solicita un archivo PHP (json_demo1.php), luego usar JSON.parse() para convertir la respuesta en un objeto JavaScript:

var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
   if (this.readyState === 4 && this.status === 200) {
      var myObj = JSON.parse(this.responseText); // Convertir una cadena JSON a un Object
      document.getElementById("output").innerHTML = myObj.name;
   }
});
httpRequest.open("GET", "json_demo1.php", true);
httpRequest.send();
Ver prueba‹/›

Al usar la función PHP, los arrays en PHP también se convierten a JSON con json_encode().

El archivo dado por json_demo2.php guardar:

  <?php
  $myArr = array("Seagull", "Cynthia", "Tarush");
  $myJSON = json_encode($myArr);  /* Convertir un array de PHP a una cadena JSON */
  
  echo $myJSON;
  ?>

El siguiente ejemplo se toma del ejemplo anterior (json_demo2solicitar un archivo PHP y luego usar JSON.parse() para convertir la respuesta en un array de JavaScript:

var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
   if (this.readyState === 4 && this.status === 200) {
      var myArr = JSON.parse(this.responseText); // Convertir una cadena JSON en un array
      document.getElementById("output").innerHTML = myArr[0];
   }
});
httpRequest.open("GET", "json_demo2.php", true);
httpRequest.send();
Ver prueba‹/›

Función json_decode()

Una cadena JSON se puede convertir en un objeto PHP con la función json_decode().

El archivo dado se guarda por json_demo.php:

  <?php
  $q = $_REQUEST["q"];  // Obtener el parámetro q de la URL
  $obj = json_decode($q, false); // Convertir una cadena JSON en un objeto PHP
  echo $obj->name."居住在".$obj->city.".";
  ?>

El siguiente ejemplo convierte un objeto JavaScript en una cadena JSON y la envía al servidor (demo_json.php):

var myObj = {name: "Seagull", age: 22, city: "New Delhi"};
var myJSON = JSON.stringify(myObj);
window.location = "json_demo.php?q=" + myJSON;
Ver prueba‹/›

Se puede usar la función para convertir una cadena JSON en un array PHP json_decode().

<?php
$q = $_REQUEST["q"];  //Obtener el parámetro q de la URL
$arr = json_decode($q, true); // Convertir una cadena JSON en un array PHP
echo$arr["name"]."居住在".$arr["city"].".";
?>