Foros del Web » Programando para Internet » PHP »

crear archivo json con este formato

Estas en el tema de crear archivo json con este formato en el foro de PHP en Foros del Web. Necesito crear a partir de una base de datos un archivo json pero no se como deberia hacerlo el formato es este: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 20/05/2016, 11:23
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 12 años, 8 meses
Puntos: 5
crear archivo json con este formato

Necesito crear a partir de una base de datos un archivo json pero no se como deberia hacerlo el formato es este:

Código json:
Ver original
  1. {
  2.   "cols": [
  3.         {"id":"","label":"cantidad","pattern":"","type":"string"},
  4.         {"id":"","label":"civil","pattern":"","type":"number"},
  5.     {"id":"","label":"soltero","pattern":"","type":"number"}
  6.       ],
  7.   "rows": [
  8.                 {"c":[{"v":"soltero"},{"v":22},{"v":12}]},
  9.         {"c":[{"v":"divorciado"},{"v":12},{"v":32}]},
  10.         {"c":[{"v":"viudo"},{"v":42},{"v":28}]}
  11.       ]
  12. }

las filas la recupero de una base de datos pero no se como deberia crear un json asi?alguien me puede orientar un poco saludos.
  #2 (permalink)  
Antiguo 20/05/2016, 12:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: crear archivo json con este formato

No debes "crear el JSON" debes crear una estructura de datos que se pueda serializar de dicha forma.

Es bien simple, tienes un objeto (o array asociativo) donde cada elemento tiene un array, con sub-objectos (o arrays asociados dentro), no es debería ser un problema.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 20/05/2016, 13:31
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: crear archivo json con este formato

Hola la parte del rows no consigo rellenarla bien el array lo hice asi:

Código PHP:
Ver original
  1. $JSON["rows"][]=array('c'=>array('v'=>'$estado','v'=>$num1,'v'=>$num2));

pero no se me crea como deberia, donde estoy fallando?
gracias por tu ayuda.
saludos
  #4 (permalink)  
Antiguo 20/05/2016, 14:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: crear archivo json con este formato

Cita:
pero no se me crea como deberia, donde estoy fallando?
Bueno, sin conocer el código completo es imposible adivinar dónde está el error.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 20/05/2016, 16:19
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: crear archivo json con este formato

Hola gracias por tu interes en ayudarme, te muestro el while con el que lleno el array php, si imprimo el $pdo->fetch() me devuelve los datos correcto y 4 filas.
En que estoy fallando?

Código PHP:
Ver original
  1. $JSON["cols"][0]=array('id'=>'','label'=>'estado','pattern'=>'','type'=>'string');
  2. $JSON["cols"][1]=array('id'=>'','label'=>'cantidad1','pattern'=>'','type'=>'number');
  3. $JSON["cols"][2]=array('id'=>'','label'=>'cantidad2','pattern'=>'','type'=>'number');
  4.                            
  5. while($row=$pdo->fetch()){
  6.     $estado=$row["estado"];
  7.         $num1=$row["cantidad1"];
  8.         $num2=$row["cantidad2"];
  9.         $JSON["rows"][]=array('c'=>array('v'=>'$estado','v'=>$num1,'v'=>$num2));
  10. }
saludos.
  #6 (permalink)  
Antiguo 20/05/2016, 16:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: crear archivo json con este formato

No se ve donde declaras $JSON ni que haces con esa variable, tampoco explicas lo que obtienes.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 20/05/2016, 16:53
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: crear archivo json con este formato

El problema mi estimado, es que no puedes tener duplicado el key en un mismo arreglo; en esta parte:
Código PHP:
Ver original
  1. $JSON["rows"][]=array('c'=>array('v'=>'$estado','v'=>$num1,'v'=>$num2));
$JSON tendra el key 'c' y el ultimo key 'v' que tiene el valor de $num2
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #8 (permalink)  
Antiguo 20/05/2016, 16:58
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: crear archivo json con este formato

No declare el array $JASON que debería declararla asi:
Código PHP:
Ver original
  1. $JASON=array ();
Lo que obtengo es una única fila en el rows y mal formada.
En cambio la parte del cols (fuera del while) esta bien formado.
Saludos
  #9 (permalink)  
Antiguo 20/05/2016, 17:02
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: crear archivo json con este formato

Cita:
Iniciado por hhs Ver Mensaje
El problema mi estimado, es que no puedes tener duplicado el key en un mismo arreglo; en esta parte:
Código PHP:
Ver original
  1. $JSON["rows"][]=array('c'=>array('v'=>'$estado','v'=>$num1,'v'=>$num2));
$JSON tendra el key 'c' y el ultimo key 'v' que tiene el valor de $num2
Sí eso me esta pasando como debería hacerlo?
Saludos
  #10 (permalink)  
Antiguo 21/05/2016, 02:54
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: crear archivo json con este formato

Hola no lo consigo probe asi:

Código PHP:
Ver original
  1. $JSON["cols"][0]=array('id'=>'','label'=>'estado','pattern'=>'','type'=>'string');
  2. $JSON["cols"][1]=array('id'=>'','label'=>'cantidad1','pattern'=>'','type'=>'number');
  3. $JSON["cols"][2]=array('id'=>'','label'=>'cantidad2','pattern'=>'','type'=>'number');
  4.                            
  5. while($row=$pdo->fetch()){
  6.     $estado=$row["estado"];
  7.         $num1=$row["cantidad1"];
  8.         $num2=$row["cantidad2"];
  9.         $JSON["rows"][]=array('c'=>array('v'=>'$estado'));
  10.         $JSON["rows"][]=array('c'=>array('v'=>'$num1'));
  11.         $JSON["rows"][]=array('c'=>array('v'=>'$num2'));
  12. }
  13.  
  14. $string = json_encode($JSON);
  15. echo $string;
  16. /*
  17. {
  18.         "cols":[
  19.               {"id":"","label":"estado","pattern":"","type":"string"},
  20.               {"id":"","label":"cantidad1","pattern":"","type":"number"},
  21.               {"id":"","label":"cantidad2","pattern":"","type":"number"}
  22.          ],
  23.          
  24.          "rows":[
  25.               {"c":{"v":"soltero"}},{"c":{"v":"200"}},{"c":{"v":"100"}},
  26.               {"c":{"v":"casado"}},{"c":{"v":"20"}},{"c":{"v":"16"}},
  27.               {"c":{"v":"divorciado"}},{"c":{"v":"209"}},{"c":{"v":"20"}}
  28.          ]
  29.              
  30. }
  31.  
  32. */

el cols se me estructura como quiero pero con el rows no lo consigo alguien me puede ayudar?
saludos
  #11 (permalink)  
Antiguo 21/05/2016, 03:14
 
Fecha de Ingreso: agosto-2011
Mensajes: 306
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: crear archivo json con este formato

Al final lo consegui, solo tenia que crear otro array para rows e insertarlo en el JSON:

Código PHP:
Ver original
  1. $filas=array();
  2. $filas['c'][0]=array('v'=>$estado);
  3. $filas['c'][1]=array('v'=>$num1);
  4. $filas['c'][2]=array('v'=>$num2);
  5. $JSON["rows"][]=$filas;

Gracias a todos por vuestra colaboracion.
saludos

Etiquetas: formato, json
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:34.