Extraer/decodificar variable de cadena JSON [duplicado]
Frecuentes
Visto 4,509 veces
1
Posible duplicado:
¿Cómo decodificar una cadena JSON en PHP?
Me gustaría extraer la variable. 'name'
de la cadena json $jsonstring
;
<?php
$facebookid = $_GET['fbid'];
$facebooklink = 'http://graph.facebook.com/'.$facebookid.'?fields=name';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $facebooklink);
curl_setopt($ch, CURLOPT_HEADER, 0);
$jsonstring = curl_exec($ch);
curl_close($ch);
?>
$jsonstring
saldría algo como lo siguiente:
{
"name": "THIS PART IS WHAT I WANT",
"id": "4"
}
Me gustaría extraer 'esta parte es lo que quiero' del ejemplo anterior.
Intenté usar json_decode pero no pude hacerlo funcionar, desde entonces eliminé ese código y, por lo tanto, no puedo escribirlo aquí. Gracias por cualquier ayuda.
5 Respuestas
3
tratan
ob_start();
$facebookid = $_GET['fbid'];
$facebooklink = 'http://graph.facebook.com/'.$facebookid.'?fields=name';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $facebooklink);
curl_setopt($ch, CURLOPT_HEADER, 0);
$jsonstring = curl_exec($ch);
curl_close($ch);
$bufferstr = ob_get_contents();
ob_end_clean();
$json = json_decode($bufferstr);
echo $json->name;
contestado el 22 de mayo de 12 a las 04:05
@Andreas & OP - Gracias por las respuestas - Sin embargo, cada respuesta devuelve lo mismo: {"nombre": "ESTA PARTE ES LO QUE QUIERO", "id": "4"} sin el 'nombre' extraído, no lo hago no se que estoy haciendo mal? :s Gracias. - Harry
@Harry ¿algún error? cualquier salida haciendo eco o haciendo var_dump
? - bitoshi.n
Sé que es mucho pedir, pero ¿me harías un favor enorme si pudieras revisar rápidamente mi código? Estaría extremadamente agradecido, he subido el archivo .php aquí: dl.dropbox.com/u/2578642/facebookconf.php Gracias - Harry
@Harry Fue porque $jsonstring
no te dio contenido de json. Es solo el estado que curl_exec
fue un exito Mira mi publicación editada. Uso el búfer para capturar la cadena json. - bitoshi.n
¡Te lo agradezco tanto, tanto! Está funcionando ahora, ¡me has ayudado mucho! Gracias de nuevo :D- Harry
1
Tratar:
<?php
$foo = json_decode( $jsonstring);
$name = $foo->name;
//echo $name;
?>
contestado el 21 de mayo de 12 a las 18:05
1
prueba este
$json_obj = json_decode($jsonstring );
echo $json_obj->name;
contestado el 21 de mayo de 12 a las 18:05
0
<?php
$json = '{"foo-bar": 12345}';
$obj = json_decode($json);
print $obj->{'foo-bar'}; // 12345
?>
contestado el 21 de mayo de 12 a las 18:05
0
En el caso de que no tenga "json_decode" en su versión de php, debe usar una expresión regular.
<?php
$name = json_decode( $jsonstring )->name;
?>
contestado el 21 de mayo de 12 a las 18:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php json facebook-graph-api or haz tu propia pregunta.
$jsonstring = curl_exec($ch);
no le dará asignación de json. Solo te da el estado decurl_exec
- bitoshi.n