Quiero guardar este json array que mi fb login, devuelve a una base de datos. Sin embargo, yo realmente no sé cómo convertirlo en una cadena con php.

[{"id":"108124505876479","name":"Wakeboarding"},{"id":"112003352149145","name":"Bouldering"},{"id":"110008522357035","name":"Handball"}]

He probado este código de abajo pero estoy aún no muy seguro de nada si lo que el fb de inicio de sesión de retorno es un json array o no.

$json = '{"id":"108124505876479","name":"Wakeboarding"},{"id":"112003352149145","name":"Bouldering"},{"id":"110008522357035","name":"Handball"}';

var_dump(json_decode($json));

Cómo iba a ser capaz de guardar los diferentes deportes a mi base de datos en una cadena?

Cualquier ayuda sería muy apreciada.

Gracias.

EDIT: La parte superior devuelve NULL.


SEGUNDA EDICIÓN:

if (array_key_exists('sports', $me)){


                    $json = '$me['sports']'; PROBLEM IS HERE
                    $data = json_decode($json, true);
                    $sports = array();
                    foreach ($data as $item) {
                        $sports[] = $item['name'];
                    }

                    $user->fb_sports = $sports;
                }
  • ¿Qué es exactamente el problema? json_encode o serializar debería funcionar bien.
  • $json debe tener los corchetes alrededor de la parte exterior de uso de la jsoneditoronline.org para comprobar si es válido JSON.
  • Y a cruzar los dedos y espero que nunca se consulta a través de esta estructurado de datos que se guardan como una cadena. Debido a que las necesidades de formas normales?
  • He editado la pregunta.
  • Lo que es de $igual a mí? También $json = ‘$me[‘deportes’]’; no es un código válido.
InformationsquelleAutor patrick | 2014-02-04

5 Comentarios

  1. 3
    $json = '[{"id":"108124505876479","name":"Wakeboarding"},{"id":"112003352149145","name":"Bouldering"},{"id":"110008522357035","name":"Handball"}]';
    $data = json_decode($json, true);
    $sports = array();
    foreach ($data as $item) {
        $sports[] = $item['name'];
    }

    si quieres comas que separan de ellos:

    $output = implode(', ', $sports);
    • esto funciona bien. Sin embargo, me sale el error de que lo que recibimos de Facebook es una matriz, no una cadena. He editado la pregunta.
    • Usted necesita comillas antes y después de los corchetes, como he dicho en mi respuesta. De otra manera no es válido PHP aunque es válido Javascript. Por CIERTO, ¿qué es de $igual a mí?
    • Puede utilizar la función var_dump con $me y copiar y pegar los resultados?
  2. 1

    uso :

     $json = serialize($json);
    • Ahora bien, esto es lo que se devuelve: s:134:»{«id»:»108124505876479″,»name»:»Wakeboarding»},{«id»:»112003352149145″,»name»:»Bouldering»},{«id»:»110008522357035″,»name»:»Handball»}»hay una manera para guardar sólo los deportes?
    • $json = ‘[{«id»:»108124505876479″,»nombre»:»Wakeboard»}, {«id»:»112003352149145″,»nombre»:»Boulder»},{«id»:»110008522357035″,»nombre»:»Balonmano»}]’; $json = json_decode($json,true); foreach($json como $valor){ $deportes[] = $valor[«nombre»]; } $deportes = serialize($deportivos);
    • He editado la pregunta. Me sale el error de que lo que recibimos de Facebook es una matriz, no una cadena.
    • es $me?
    • el Facebook de la matriz que contiene los datos de usuario de inicio de sesión.
  3. 0

    Si var_dump(json_decode($json)) devuelve lo que usted esperaría sólo ahorra $json directamente en la base de datos.

    • El problema es que el código que he devuelve NULL.
    • Me gustaría guardar una cadena de todos los deportes.
    • no debe ser corchetes alrededor de todo… trate de copiar en jsoneditoronline.org también utilizar la función var_dump(json_decode($json, true)) para convertirla en matrices asociativas.
  4. 0
    $json1 = '{"id":"108124505876479","name":"Wakeboarding"},{"id":"112003352149145","name":"Bouldering"},{"id":"110008522357035","name":"Handball"}';
    $json2 = '[{"id":"108124505876479","name":"Wakeboarding"},{"id":"112003352149145","name":"Bouldering"},{"id":"110008522357035","name":"Handball"}]';
    
    var_dump(json_decode($json1,true));
    var_dump(json_decode($json2,true));

    ver la diferencia

Dejar respuesta

Please enter your comment!
Please enter your name here