parse ejemplo convertir cast boolval bool array php json string object

ejemplo - Convierta una cadena al objeto JSON php



parse boolean php (4)

Lo que @deceze dijo es correcto, parece que tu JSON está mal formado, prueba esto:

{ "Coords": [{ "Accuracy": "30", "Latitude": "53.2778273", "Longitude": "-9.0121648", "Timestamp": "Fri Jun 28 2013 11:43:57 GMT+0100 (IST)" }, { "Accuracy": "30", "Latitude": "53.2778273", "Longitude": "-9.0121648", "Timestamp": "Fri Jun 28 2013 11:43:57 GMT+0100 (IST)" }, { "Accuracy": "30", "Latitude": "53.2778273", "Longitude": "-9.0121648", "Timestamp": "Fri Jun 28 2013 11:43:57 GMT+0100 (IST)" }, { "Accuracy": "30", "Latitude": "53.2778339", "Longitude": "-9.0121466", "Timestamp": "Fri Jun 28 2013 11:45:54 GMT+0100 (IST)" }, { "Accuracy": "30", "Latitude": "53.2778159", "Longitude": "-9.0121201", "Timestamp": "Fri Jun 28 2013 11:45:58 GMT+0100 (IST)" }] }

Use json_decode($string) para convertir String en Array / Object (stdClass): http://php.net/manual/en/function.json-decode.php

[editado]

No entendí ¿Qué quiere decir con "un objeto JSON oficial" , pero supongamos que desea agregar contenido a json a través de PHP y luego lo convierte de nuevo a JSON?

suponiendo que tiene la siguiente variable:

$data = ''{"Coords":[{"Accuracy":"65","Latitude":"53.277720488429026","Longitude":"-9.012038778269686","Timestamp":"Fri Jul 05 2013 11:59:34 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.277720488429026","Longitude":"-9.012038778269686","Timestamp":"Fri Jul 05 2013 11:59:34 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.27770755361785","Longitude":"-9.011979642121824","Timestamp":"Fri Jul 05 2013 12:02:09 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.27769091555766","Longitude":"-9.012051410095722","Timestamp":"Fri Jul 05 2013 12:02:17 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.27769091555766","Longitude":"-9.012051410095722","Timestamp":"Fri Jul 05 2013 12:02:17 GMT+0100 (IST)"}]}'';

Debería convertirlo a Array / Object (stdClass):

$manage = json_decode($data);

Pero trabajar con stdClass es más complicado que PHP-Array, luego prueba esto:

$manage = (array) json_decode($data);

de esta manera puede usar funciones de matriz: http://php.net/manual/en/function.array.php

agregando un artículo:

$manage = (array) json_decode($data); echo ''Before: <br>''; print_r($manage); $manage[''Coords''][] = Array( ''Accuracy'' => ''90'' ''Latitude'' => ''53.277720488429026'' ''Longitude'' => ''-9.012038778269686'' ''Timestamp'' => ''Fri Jul 05 2013 11:59:34 GMT+0100 (IST)'' ); echo ''<br>After: <br>''; print_r($manage);

eliminar el primer elemento:

$manage = (array) json_decode($data); echo ''Before: <br>''; print_r($manage); array_shift($manage[''Coords'']); echo ''<br>After: <br>''; print_r($manage);

cualquier oportunidad que desee guardar en json en una base de datos o un archivo :

$data = ''{"Coords":[{"Accuracy":"65","Latitude":"53.277720488429026","Longitude":"-9.012038778269686","Timestamp":"Fri Jul 05 2013 11:59:34 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.277720488429026","Longitude":"-9.012038778269686","Timestamp":"Fri Jul 05 2013 11:59:34 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.27770755361785","Longitude":"-9.011979642121824","Timestamp":"Fri Jul 05 2013 12:02:09 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.27769091555766","Longitude":"-9.012051410095722","Timestamp":"Fri Jul 05 2013 12:02:17 GMT+0100 (IST)"},{"Accuracy":"65","Latitude":"53.27769091555766","Longitude":"-9.012051410095722","Timestamp":"Fri Jul 05 2013 12:02:17 GMT+0100 (IST)"}]}''; $manage = (array) json_decode($data); $manage[''Coords''][] = Array( ''Accuracy'' => ''90'' ''Latitude'' => ''53.277720488429026'' ''Longitude'' => ''-9.012038778269686'' ''Timestamp'' => ''Fri Jul 05 2013 11:59:34 GMT+0100 (IST)'' ); if(($id = fopen(''datafile.txt'',''w''))){ fwrite($id,json_encode($manage)); fclose($id); }

Espero haber entendido tu pregunta.

Buena suerte.

Tengo el siguiente resultado de una consulta sql:

{"Coords":[ {"Accuracy":"65","Latitude":"53.277720488429026","Longitude":"-9.012038778269686","Timestamp":"Fri Jul 05 2013 11:59:34 GMT+0100 (IST)"}, {"Accuracy":"65","Latitude":"53.277720488429026","Longitude":"-9.012038778269686","Timestamp":"Fri Jul 05 2013 11:59:34 GMT+0100 (IST)"}, {"Accuracy":"65","Latitude":"53.27770755361785","Longitude":"-9.011979642121824","Timestamp":"Fri Jul 05 2013 12:02:09 GMT+0100 (IST)"}, {"Accuracy":"65","Latitude":"53.27769091555766","Longitude":"-9.012051410095722","Timestamp":"Fri Jul 05 2013 12:02:17 GMT+0100 (IST)"}, {"Accuracy":"65","Latitude":"53.27769091555766","Longitude":"-9.012051410095722","Timestamp":"Fri Jul 05 2013 12:02:17 GMT+0100 (IST)"} ] }

Actualmente es una cadena en php, ¿hay alguna manera fácil de convertir esto en un objeto JSON (sé que ya está en forma JSON).

Necesito que sea un objeto, así que puedo agregar un elemento / elemento / objeto adicional, como qué coords ya es

EDIT: LO SENTIMOS, ¡PASÉ UNA CADENA VIEJA / INCORRECTA!


Para convertir una cadena JSON válida, puede usar el método http://php.net/manual/en/function.json-decode.php .

Para convertirlo a un objeto, use este método:

$jObj = json_decode($jsonString);

Y para convertirlo en una matriz asociativa, establezca el segundo parámetro en true :

$jArr = json_decode($jsonString, true);

Por cierto, para convertir su cadena mencionada a cualquiera de esas, debe tener una cadena JSON válida. Para lograrlo, debes hacer lo siguiente:

  1. En la matriz de Coords , elimine las dos " (comillas dobles) del inicio y el final del objeto.
  2. Los objetos en una matriz están separados por comas ( , ), así que agrega comas entre los objetos en la matriz de Coords .

Y tendrás una cadena JSON válida ...

Aquí está su cadena JSON que convertí a una válida: pastebin.com/R16NVerw


Pruebe con json_encode() .

Y mira otra vez Valid JSON