Ir al contenido



Foto

Json a php

json php

Mejor respuesta Richi , 30 mayo 2017 - 09:31

A ver veamos, según tú último ejemplo, sólo corresponde un solo arreglo, por eso simplemente basta con $metodoRespuesta->cuenta, no sé de donde sacas $metodoRespuestas[7]->cuenta, a menos que tengas varios arreglos, con el método foreach iteras esos datos:


php
  1. $dividido = array();
  2.  
  3. foreach($metodoRespuesta as $idx => $valor)
  4. {
  5. echo 'cuenta: ' . $valor->cuenta . '\n';
  6. }

ojo lo hice de memoria, puede fallar.

 

Saludos.

Lo resolvi tirando un for con un contador entonces me muestra los datos justo como los necesito. Tengo otra pregunta pero creo que es tema aparte.

Ir al mensaje completo


  • Por favor identifícate para responder
10 respuestas en este tema

#1 Richi

Richi

    Advanced Member

  • Miembros
  • PipPipPip
  • 83 mensajes

Escrito 22 mayo 2017 - 10:00

Hola. Tengo una duda, me toca pues consultar un archivo que me devuelve lo siguiente:


php
  1. object(stdClass)#2 (1) { ["tabla"]=> string(2144) "[{"numero":"001000","fecha":"2017-04-25","fecha2":"2017-05-31","cantidad":4877},{"numero":"001000","fecha":"2017-04-25","fecha2":"2017-05-31","cantidad":14801}]" }

El famoso json, mi pregunta es como hago para pasar esas variables o ese json a un php? He visto algunos videos pero no esto comprendiendo bien como hacer, si lo debo hacer desde el archivo donde consulto o en mi archivo (que me parece más mi archivo). Mi pregunta es ¿ Como paso ese json a un php?

 

La idea es poder mostrar estos datos en un form donde vengan en lista cada linea.

 

*nota son más datos pero es un ejemplo jaja


  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 22 mayo 2017 - 11:55

Pregunta, cómo obtienes ese JSON?, segúun tu ejemplo pareciera que ya está como un objeto dentro de PHP, de todos modos, si es un String JSON, simplemente:


php
  1. $json = json_decode('<el string json>');


  • 0

#3 Richi

Richi

    Advanced Member

  • Miembros
  • PipPipPip
  • 83 mensajes

Escrito 22 mayo 2017 - 12:12

 

Pregunta, cómo obtienes ese JSON?, segúun tu ejemplo pareciera que ya está como un objeto dentro de PHP, de todos modos, si es un String JSON, simplemente:


php
  1. $json = json_decode('<el string json>');

Si ese json pues yo solo lo debo consultar, jamas habia trabajado con uno anteriormente, por ende he tenido que investigar bastante y noté lo del objeto tambien porque en los ejemplos que he visto sale diferente. Este lo obtengo de otro sistema que me pide 2 datos y me devuelve ese json.


php
  1. <?php
  2.  
  3. //crear clase para los parametros necesarios.
  4.  
  5. class insertar {
  6. public $nombre;
  7. public $marca;
  8. public $detalle;
  9. public function __construct($nombre, $marca, $detalle){
  10. $this->nombre = $nombre;
  11. $this->marca = $marca;
  12. $this->detalle = $detalle;
  13. }
  14. }
  15.  
  16. //inicio cliente SOAP
  17. $cliente = new SoapClient("direccion");
  18.  
  19.  
  20. $respuesta = $cliente->metodo();
  21.  
  22. var_dump($respuesta);
  23. ?>

va asi, aunque me parece que pones decode, no será encode? porque si uso el decode me lanza null. Al ser objeto de json para utilizarlo en el php como lo llamo?


  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 22 mayo 2017 - 12:44

Ah pues es que está dentro de un array, simplemente pones $repuesta['tabla'] dentro del json_decode, éste último te convierte el json en un arreglo.
  • 0

#5 Richi

Richi

    Advanced Member

  • Miembros
  • PipPipPip
  • 83 mensajes

Escrito 22 mayo 2017 - 01:41

Ah pues es que está dentro de un array, simplemente pones $repuesta['tabla'] dentro del json_decode, éste último te convierte el json en un arreglo.

ok a ver si entiendo, si uso $json = json_decode($respuesta['tabla']); y le hago una impresión a eso debería lanzarme los datos? Ahora, mencionas que como es objto me lo convierte en un json, ese objeto lo podria trabajar directo con php o por fuerza json?


  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 22 mayo 2017 - 02:29

Te lanza los datos como un arreglo, no como json, en tu caso devuelve un arreglo con dos registros, (sub arreglod), ejemplo:

Array(
Array(
'Numero' => algo,
'Cantidad' => algo),
Array(
'Numero' => algo,
'Cantidad' => algo)
);
  • 0

#7 Richi

Richi

    Advanced Member

  • Miembros
  • PipPipPip
  • 83 mensajes

Escrito 22 mayo 2017 - 02:35

Espera, si me lanza los datos como un php, no es necesario utilizar json o si, es decir yo podría recorrer ese objeto sin necesidad de usar json?? digo yo lo que necesito es meter esos datos en un formulario para desplegar la lista.


  • 0

#8 Richi

Richi

    Advanced Member

  • Miembros
  • PipPipPip
  • 83 mensajes

Escrito 25 mayo 2017 - 08:06

Te lanza los datos como un arreglo, no como json, en tu caso devuelve un arreglo con dos registros, (sub arreglod), ejemplo:

Array(
Array(
'Numero' => algo,
'Cantidad' => algo),
Array(
'Numero' => algo,
'Cantidad' => algo)
);

ok, hice que me tirara pues la linea y en ese caso me lanza una linea asi


php
  1. stdClass Object ( [cuenta] => 002 [factura] => 001 [Voucher] => 1000 [fecha] => 2017-03-02 [fecah2] => 2017-04-05 [monto] => 48295)

el detalle es como divido eso para poder obtener solo el dato de cuenta, otro de factura, etc y asi poder mostrarlo en un input?

 

se resuelve de la siguiente manera :

 

print_r($metodoRespuesta[7]->cuenta); y el resultado es 002

el $metodoRespuesta es el que se trae todo entonces al ponerle [7] pues nos muestra la linea no todo y al agregar ->"campo" va a mostrar el detalle que se encuentra en ese campo de esa fila.

 

 

Ahora ocupo realizar la iteración que es lo que voy a ver como le hago.

 

 


  • 0

#9 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 25 mayo 2017 - 09:22

A ver veamos, según tú último ejemplo, sólo corresponde un solo arreglo, por eso simplemente basta con $metodoRespuesta->cuenta, no sé de donde sacas $metodoRespuestas[7]->cuenta, a menos que tengas varios arreglos, con el método foreach iteras esos datos:


php
  1. $dividido = array();
  2.  
  3. foreach($metodoRespuesta as $idx => $valor)
  4. {
  5. echo 'cuenta: ' . $valor->cuenta . '\n';
  6. }

ojo lo hice de memoria, puede fallar.

 

Saludos.


  • 0

#10 look

look

    Advanced Member

  • Miembros
  • PipPipPip
  • 409 mensajes
  • LocationLa Ceiba-Atlantida-Honduras

Escrito 25 mayo 2017 - 01:28


php
  1. <?php
  2.  
  3. $json = file_get_contents('php://input');
  4.  
  5. $obj = json_decode($json,true);
  6.  
  7. foreach($obj as $item)
  8. {
  9.  
  10. print $item['name'];
  11.  
  12. }
  13.  
  14. ?>


  • 0

#11 Richi

Richi

    Advanced Member

  • Miembros
  • PipPipPip
  • 83 mensajes

Escrito 30 mayo 2017 - 09:31   Mejor respuesta

A ver veamos, según tú último ejemplo, sólo corresponde un solo arreglo, por eso simplemente basta con $metodoRespuesta->cuenta, no sé de donde sacas $metodoRespuestas[7]->cuenta, a menos que tengas varios arreglos, con el método foreach iteras esos datos:


php
  1. $dividido = array();
  2.  
  3. foreach($metodoRespuesta as $idx => $valor)
  4. {
  5. echo 'cuenta: ' . $valor->cuenta . '\n';
  6. }

ojo lo hice de memoria, puede fallar.

 

Saludos.

Lo resolvi tirando un for con un contador entonces me muestra los datos justo como los necesito. Tengo otra pregunta pero creo que es tema aparte.


  • 1





Etiquetado también con una o más de estas palabras: json, php