English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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ón | Descripción |
---|---|
json_encode() | Devuelve la representación JSON del valor |
json_decode() | Analizar una cadena JSON |
json_last_error() | Devuelve el último error ocurrido |
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‹/›
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"]."."; ?>