print json_decode php json

json_decode - send json php



Cómo generar json usando php? (4)

Nunca he usado JSON antes y estoy tratando de utilizar el siguiente javascript: http://jqueryselectcombo.googlecode.com/files/jquery.selectCombo1.2.6.js

Necesita una salida JSON en el siguiente formato:

[{oV: ''myfirstvalue'', oT: ''myfirsttext''}, {oV: ''mysecondvalue'', oT: ''mysecondtext''}]

¿Podría guiarme a un ejemplo sobre cómo generar un resultado JSON como el anterior, utilizando PHP?



La forma más simple probablemente sería comenzar con una matriz asociativa de los pares que desea:

$data = array("myfirstvalue" => "myfirsttext", "mysecondvalue" => "mysecondtext");

luego usa un foreach y alguna concatenación de cadenas:

$jsontext = "["; foreach($data as $key => $value) { $jsontext .= "{oV: ''".addslashes($key)."'', oT: ''".addslashes($value)."''},"; } $jsontext = substr_replace($jsontext, '''', -1); // to get rid of extra comma $jsontext .= "]";

O si tiene una versión reciente de PHP, puede usar las funciones de codificación json incorporadas; solo tenga cuidado con qué datos los pasa para que coincidan con el formato esperado.


Una vez que tenga sus datos PHP, puede usar la función json_encode ; está incluido con PHP desde PHP 5.2

En tu caso, tu cadena JSON representa:

  • una lista que contiene 2 elementos
  • cada uno es un objeto, que contiene 2 propiedades / valores

En PHP, esto crearía la estructura que está representando:

$data = array( (object)array( ''oV'' => ''myfirstvalue'', ''oT'' => ''myfirsttext'', ), (object)array( ''oV'' => ''mysecondvalue'', ''oT'' => ''mysecondtext'', ), ); var_dump($data);

El var_dump te consigue:

array 0 => object(stdClass)[1] public ''oV'' => string ''myfirstvalue'' (length=12) public ''oT'' => string ''myfirsttext'' (length=11) 1 => object(stdClass)[2] public ''oV'' => string ''mysecondvalue'' (length=13) public ''oT'' => string ''mysecondtext'' (length=12)

Y, codificándolo a JSON:

$json = json_encode($data); echo $json;

Usted obtiene :

[{"oV":"myfirstvalue","oT":"myfirsttext"},{"oV":"mysecondvalue","oT":"mysecondtext"}]


Por cierto: Frolm, lo que recuerdo, diría que su cadena JSON no es válida: datos JSON: debería haber comillas dobles alrededor de la cadena, incluidos los nombres de las propiedades de los objetos.

Ver http://www.json.org/ para la gramática.


Espero que esto ayude :-)


Este es el código php para generar el formato json

<?php $catId = $_GET[''catId'']; $catId = $_POST[''catId'']; $conn = mysqli_connect("localhost","root","","DBName"); if(!$conn) { trigger_error(''Could not Connect'' .mysqli_connect_error()); } $sql = "SELECT * FROM TableName"; $result = mysqli_query($conn, $sql); $array = array(); while($row=mysqli_fetch_assoc($result)) { $array[] = $row; } echo''{"ProductsData":''.json_encode($array).''}''; //Here ProductsData is just a simple String u can write anything instead mysqli_close(''$conn''); ?>