PDA

Ver la Versión Completa : [ SOLUCIONADO ] Extraer items


Merche300
23/09/17, 11:16:24
Veran no se si es el hilo correcto, pero no veo PHP por ningun sitio, tengo un Json el cual quiero exteraer solo las jornadas con PHP y no lo consigo, me hechan una mano?

{"prueva": [{"codCompeticion": "1",
"nomCompeticion": "1.1",
"jornadas": []
},
{"codCompeticion": "2",
"nomCompeticion": "2.1",
"jornadas": [{"jornada": "1",
"idClubLocal": "0201045",
"idEquipoLocal": "0201045201",
"nomLocal": "Rafelbuñol C.F.",
"idClubVisitante": "0201113",
"idEquipoVisitante": "0201113211",
"nomVisitante": "C.F. Historics de Valencia \"B\"",
"resLocal": "",
"resVisitante": "",
"fecha": "",
"hora": "",
"codInfo": "2127913",
"escudoLocal": "./img/logosClubes/0201045.jpg",
"escudoVisitante": "./img/logosClubes/0201113.jpg"
},
{"jornada": "2",
"idClubLocal": "0201404",
"idEquipoLocal": "0201404541",
"nomLocal": "Rocafort C.F. \"B\"",
"idClubVisitante": "0201045",
"idEquipoVisitante": "0201045201",
"nomVisitante": "Rafelbuñol C.F.",
"resLocal": "",
"resVisitante": "",
"fecha": "",
"hora": "",
"codInfo": "",
"escudoLocal": "./img/logosClubes/0201404.jpg",
"escudoVisitante": "./img/logosClubes/0201045.jpg"
}............... continualo que quisiera extraer son todos los items de "jornadas", osea, jorrnada 1, jornada 2........ pero no hay manera, esto es lo que hago:

$objeto = json_decode($json, true);
$items = $objeto['prueva'][1]['jornadas'];
echo json_decode($items);

mocelet
24/09/17, 12:11:34
En efecto no hay sección de programación general en este foro, pero bueno, el json_decode de PHP lo convierte a arrays y no hay más que seguir el array.

¿Por qué llamas a json_decode otra vez con $items si eso ya no es un json porque ya está decodificado? Ya tienes en $items lo que quieres, no hay que decodificar nada, que por eso te dará un error supongo.

Merche300
24/09/17, 13:20:38
En efecto no hay sección de programación general en este foro, pero bueno, el json_decode de PHP lo convierte a arrays y no hay más que seguir el array.

¿Por qué llamas a json_decode otra vez con $items si eso ya no es un json porque ya está decodificado? Ya tienes en $items lo que quieres, no hay que decodificar nada, que por eso te dará un error supongo.

Gracias mocelet, pero ese no es el fallo, no me da ningun error lo que pasa es que no me da ningun dato.

mocelet
24/09/17, 13:40:58
Bueno, hay dos fallos, uno el que te he dicho (json_decode devuelve null si no le pasas un json), y otro que el echo no sirve para ver arrays, solo vale para strings.

Así que en la última línea quita lo del echo json_decode y déjala en un:

var_dump($items)

y a ver qué te sale.

Merche300
29/09/17, 20:49:54
Bueno, hay dos fallos, uno el que te he dicho (json_decode devuelve null si no le pasas un json), y otro que el echo no sirve para ver arrays, solo vale para strings.

Así que en la última línea quita lo del echo json_decode y déjala en un:

var_dump($items) y a ver qué te sale.

sale NULL

mocelet
30/09/17, 08:55:02
Pues ve tirando del hilo a ver desde dónde es null, si es por el json en sí que esté mal escrito o por el acceso a los arrays intermedios.

Merche300
30/09/17, 09:39:27
Pues ve tirando del hilo a ver desde dónde es null, si es por el json en sí que esté mal escrito o por el acceso a los arrays intermedios.

Gracias, Esta es la solucion:

$objeto = json_decode($data, true);
$items = $objeto['prueva'][1]['jornadas'];
echo json_encode($items);

en la primera linea
$objeto = json_decode($data, true));
no me di cuenta $json no es, sino $data, de ahi que no tenia datos.

en la tercera sin el json_encode sale array.