Foros del Web » Programando para Internet » PHP »

Acceder a un array Json dentro de un objeto json

Estas en el tema de Acceder a un array Json dentro de un objeto json en el foro de PHP en Foros del Web. Hola envío con ajax la siguiente cadena armada con json @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original { "Comp" : [ "{" Marca ":" 1 ...
  #1 (permalink)  
Antiguo 15/07/2011, 08:36
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 107
Antigüedad: 13 años, 8 meses
Puntos: 3
Acceder a un array Json dentro de un objeto json

Hola envío con ajax la siguiente cadena armada con json

Código Javascript:
Ver original
  1. {"Comp":["{"Marca":"1","Compatibles":["pj3","pj4"],"SirvePara":["r23","r24"]}","{"Marca":"1","Compatibles":["pj78","p123"],"SirvePara":["rj115","rj789"]}",""]}


es un arreglo de elemento json
{"Marca":"1","Compatibles":["pj3","pj4"],"SirvePara":["r23","r24"]}
{"Marca":"1","Compatibles":["pj3","pj4"],"SirvePara":["r23","r24"]}

Y el problema es que no puedo acceder a los elementos de arreglo.... intente un millon de formas y ya no se cual probar.

lo más coherente que he probado es

Código PHP:
Ver original
  1. // aca biene la cadena que pegue anteriormente
  2. $Compatibles=$json->decode(stripslashes($_POST['IngArt_AddCompatibles']));
  3.  
  4. //$a= $Compatibles->Comp[0]->Compatibles[0];// devuelve NULL
  5.   $a= $Compatibles->Comp[0]["Compatibles"][0];// devuelve ""
  6.   return $a;

Espero me puedan ayudar, desde ya muchas gracias.
  #2 (permalink)  
Antiguo 15/07/2011, 12:50
Avatar de humbero12  
Fecha de Ingreso: abril-2009
Ubicación: Cereté, Colombia
Mensajes: 53
Antigüedad: 15 años
Puntos: 4
Respuesta: Acceder a un array Json dentro de un objeto json

Bueno para iniciar te comento que tines problema en tu codigo JSON estas haciendo algo como esto

{"prop":["{}"]} <--- tiene que quitarle las comillas (")
{"prop":[{}]} <--- asi si me funciona

el código JSON quedaría así:
Código Javascript:
Ver original
  1. {"Comp":[{"Marca":"1","Compatibles":["pj3","pj4"],"SirvePara":["r23","r24"]},{"Marca":"1","Compatibles":["pj78","p123"],"SirvePara":["rj115","rj789"]},""]}

y todo el codigo php
Código PHP:
Ver original
  1. <?php
  2. $j = '{"Comp":[{"Marca":"1","Compatibles":["pj3","pj4"],"SirvePara":["r23","r24"]},{"Marca":"1","Compatibles":["pj78","p123"],"SirvePara":["rj115","rj789"]},""]}';
  3.  
  4. $a = json_decode($j);
  5. echo $a->Comp[0]->Compatibles[0];
  6. ?>
__________________
Sigueme en twitter @humbero12
Blog #cazacontenidos
  #3 (permalink)  
Antiguo 30/07/2011, 13:26
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 107
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Acceder a un array Json dentro de un objeto json

Lo solucioné haciendo el json que envuelve todo de forma manual:

Código Javascript:
Ver original
  1. ListaCopatibles="{\"Comp\":[" + ListaCopatibles + "\"\"]}";

Etiquetas: acceder, json, objeto
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 08:14.