Hay una publicación andyrusterholz at g-m-a-i-l dot c-o-men la página mencionada que también puede manejar matrices anidadas complejas (si eso es lo suyo).
Dang, amigo, fuiste instantáneo en esa respuesta =). Estaba entusiasmado con la pregunta fácil =)
Calvin Froedge
2
Tengo este código while ($ row = mysql_fetch_assoc ($ query_insert)) {$ control = array ('regione' => $ row ["regione"], 'totale' => $ row ["prezzi"]); } print (json_encode (% control)); pero retun {"regione": "Puglia", "totale": "5.15"} no [{..}, {..}]
Mimmo
2
Agregue 1 para la referencia de limón. :-)
prohibición de geoingeniería
Lo hice pero la respuesta que obtengo usando la función var_dumb es la siguiente. ¿Cómo puedo deshacerme de la cuerda (59)? string (59) "[{" result ":" success "}, {" message ":" Data updated! "}]"
Disculpe pero si quiero {"nome_array": [{"foo": "bar"}, {"foo": "baz"}]} ??
Mimmo
41
Simple: simplemente cree una matriz PHP (anidada) e instálela json_encode. Las matrices numéricas se traducen en listas JSON ( []), las matrices asociativas y los objetos PHP se traducen en objetos ( {}). Ejemplo:
Disculpe pero si quiero {"nome_array": [{"foo": "bar"}, {"foo": "baz"}]} ??
Mimmo
2
Lee mi publicación nuevamente. Si desea que algo se traduzca en un objeto JSON, conviértalo en una matriz asociativa en PHP (donde las claves son cadenas). Si desea que se traduzca en una lista JSON, conviértalo en una matriz simple (con claves enteras implícitas). El valor de cada elemento de matriz puede ser una matriz, que es lo que desea.
tdammers
Gracias esto respondió mi pregunta también.
Shawn Wernig
Lo hice pero la respuesta que obtengo usando la función var_dumb es la siguiente. ¿Cómo puedo deshacerme de la cuerda (59)? string (59) "[{" result ":" success "}, {" message ":" Data updated! "}]"
James Smith
13
La mejor manera de ir cada vez para crear json en php es convertir primero los valores en una matriz ASSOCIATIVE.
Después de eso simplemente codifica usando json_encode($associativeArray). Creo que es la mejor manera de crear json en php porque cada vez que estamos obteniendo resultados de la consulta sql en php, la mayoría de las veces tenemos valores usando la fetch_assocfunción, que también devuelve una matriz asociativa.
Simplemente escribiendo esta sola línea le daría una matriz json,
echo json_encode($array);
Normalmente se usa json_encodepara leer datos de una aplicación ios o android. así que asegúrese de no hacer eco de otra cosa que no sea la matriz json precisa.
Creé una clase jsonOBJ simple y cruda para usar para mi código. PHP no incluye funciones json como JavaScript / Node do. Debe iterar de manera diferente, pero puede ser útil.
<?php
// define a JSON Object classclass jsonOBJ {private $_arr;private $_arrName;function __construct($arrName){
$this->_arrName = $arrName;
$this->_arr[$this->_arrName]= array();}function toArray(){return $this->_arr;}function toString(){return json_encode($this->_arr);}function push($newObjectElement){
$this->_arr[$this->_arrName][]= $newObjectElement;// array[$key]=$val;}functionadd($key,$val){
$this->_arr[$this->_arrName][]= array($key=>$val);}}// create an instance of the object
$jsonObj =new jsonOBJ("locations");// add items using one of two methods
$jsonObj->push(json_decode("{\"location\":\"TestLoc1\"}",true));// from a JSON String
$jsonObj->push(json_decode("{\"location\":\"TestLoc2\"}",true));
$jsonObj->add("location","TestLoc3");// from key:val pairs
echo "<pre>". print_r($jsonObj->toArray(),1)."</pre>";
echo "<br />". $jsonObj->toString();?>
// return a JSON Object (jsonOBJ) from the rowsfunctionParseRowsAsJSONObject($arrName, $rowRS){
$jsonArr =new jsonOBJ($arrName);// name of the json array
$rows = mysqli_num_rows($rowRS);if($rows >0){while($rows >0){
$rd = mysqli_fetch_assoc($rowRS);
$jsonArr->push($rd);
$rows--;}
mysqli_free_result($rowRS);}return $jsonArr->toArray();}
Respuestas:
Exprimidor fácil de limón: http://www.php.net/manual/en/function.json-encode.php
Hay una publicación
andyrusterholz at g-m-a-i-l dot c-o-m
en la página mencionada que también puede manejar matrices anidadas complejas (si eso es lo suyo).fuente
Use el nativo de PHP
json_encode
, así:Actualización : para responder a su pregunta en el comentario. Lo haces así:
fuente
Simple: simplemente cree una matriz PHP (anidada) e instálela
json_encode
. Las matrices numéricas se traducen en listas JSON ([]
), las matrices asociativas y los objetos PHP se traducen en objetos ({}
). Ejemplo:Te dio:
fuente
La mejor manera de ir cada vez para crear json en php es convertir primero los valores en una matriz ASSOCIATIVE.
Después de eso simplemente codifica usando
json_encode($associativeArray)
. Creo que es la mejor manera de crear json en php porque cada vez que estamos obteniendo resultados de la consulta sql en php, la mayoría de las veces tenemos valores usando lafetch_assoc
función, que también devuelve una matriz asociativa.... etc.
Después de esto.
fuente
también para array puedes usar anotaciones cortas:
fuente
Así es como puedo hacerlo con la ayuda de la solución dada por @tdammers a continuación. La siguiente línea se colocará dentro del bucle foreach.
Y luego codifique la matriz con la función de codificación json
fuente
Simplemente escribiendo esta sola línea le daría una matriz json,
echo json_encode($array);
Normalmente se usa
json_encode
para leer datos de una aplicación ios o android. así que asegúrese de no hacer eco de otra cosa que no sea la matriz json precisa.fuente
fuente
fuente
Creé una clase jsonOBJ simple y cruda para usar para mi código. PHP no incluye funciones json como JavaScript / Node do. Debe iterar de manera diferente, pero puede ser útil.
Saldrá:
Para iterar, convertir a un objeto normal:
Luego:
Salidas:
TestLoc1
TestLoc2
TestLoc3
Acceso directo:
Un ejemplo práctico:
fuente