esta forma porque JavaScript fue el primer lenguaje en sacar provecho de este formato.
JSON Syntax
{"nombre":"Lushui","especie":"Panda","dieta":"Cosas verdes","edad":7,"colores":["\
red","marron","blanco"]}
Las cadenas JSON deben estar contenidas entre comillas dobles
JSON permite estos tipos de valores:
- Doble
- Flotante
- Cadena
- Booleano
- Matriz
- Objeto
- Null
Los valores numéricos se representan sin comillas dobles. Ten cuidado al escoger si entrecomillas
un valor o no. Por ejemplo, los códigos postales de Estados Unidos consisten en cinco números. No
obstante, si omitieras las comillas de un código postal, 07702 sería tomado como un entero y sería
truncado a 7702 . Este es un error que se ha cobrado la vida de muchos aventureros de la web.
Los booleanos son representados por las palabras true y false , ambos sin comillas al igual que
en PHP. Como dije antes, los valores de cadenas quedan dentro de comillas dobles y no comillas
simples.
El valor null funciona de forma similar a la que lo hace en PHP, y es representado por la palabra
null sin comillas. ¡Debería ser fácil de recordar!
Hemos visto objetos. Al igual que el objeto JSON principal en sí, están envueltos por llaves y pueden
contener toda variedad de tipos de valores.
Las matrices, lucen de manera muy similar a su contrapartida en JavaScript
// JavaScript
['rojo', 'marron', 'blanco']
["rojo", "marron", "blanco"]
JSON y PHP
Como mencioné antes, desde la versión 5.2.0, PHP ofrece soporte para serializar y deserializar datos
de y hacia el formato JSON. Vamos a ver cómo funciona eso en acción.
Serializando una matriz PHP a JSON
Para serializar un valor PHP solo necesitamos el método json_encode() . Tal que así:
1
<?php
2
3
4
$verdad = array('panda' => '¡Increible!');
echo json_encode($verdad);
El resultado de este fragmento de código será una cadena JSON que contenga el siguiente valor.
{"panda":"¡Increible!"}
¡Bien! Vamos a asegurarnos de que podemos convertir esto de vuelta al formato que pueda ser
entendido por PHP.
Deserializando una matriz PHP desde una cadena JSON
Para ello usaremos el método json_decode . Apuesto a que no lo viste venir.
<?php
2
3
4
$verdad = json_decode('{"panda":"¡Increible!"}');
echo $verdad['panda'];
¡Genial! Allá vam... espera, ¿qué?
1
Fatal error: Cannot use object of type stdClass as array in ...
Como ves, json_decode no devuelve nuestro JSON como matriz PHP; usa un objeto del tipo
stdClass para representar nuestros datos. En vez de ello vamos a acceder a la clave del objeto como
un atributo:
1
<?php
$verdad = json_decode('{"panda":"¡Increible!"}');
echo $verdad->panda;
// ¡Increible!
¡Genial! Eso es lo que queríamos. Si queríamos una matriz, PHP nos ofrece algunas formas de
convertir este objeto en una, pero por suerte, json_decode aun tiene un truco bajo la manga.
Si usas true como segundo parámetro a la función, recibiremos la matriz PHP como esperábamos.
¡Gracias json_decode !
1
<?php
$verdad = json_decode('{"panda":"¡Increible!”}', true);
echo $verdad['panda'];
// ¡Increible!
No hay comentarios:
Publicar un comentario