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?
Esto debería ser útil: generación de JSON
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'');
?>