IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Récupération donnees JSON


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 15
    Par défaut Récupération donnees JSON
    Bonjour à tous,

    Voila j'ai une construction de fichier JSON sur un serveur distant qui se passe correctement avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = "SELECT * FROM tincidents WHERE date_import IS NULL"; 
    $exe = $pdo->query($sql); 
    echo json_encode($exe->fetchAll(PDO:: FETCH_ASSOC),JSON_UNESCAPED_UNICODE);
    Ce code donne le bon résultat à savoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [{"id":"61","type":"1","technician":"2","t_group":"3","title":"test prod","description":"test description","nom":"test jerome","tel":"06XXXXXX","user":"","email":"xxxxx@gmail.com","date_create":"2021-02-19 11:36:54"}]
    J'essaye de récupérer le json depuis un script php

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $url = 'http://xx.xx.xx/ww.php?....';
    $json = file_get_contents($url);
    $data = json_decode($json,true);
     
    foreach ($data as $app) {
    	echo $app["id"];
    }

    Le foreach renvoi un warning "invalid argument"

    Du coup j'ai fait un var_dump($data) il renvoi NULL ????? alors que le var_dump($json) renvoi bien les données.

    j'espère avoir été clair dans mon problème

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 998
    Par défaut
    Si quelque chose c'est mal passé lors du décodage de la chaîne JSON, tu peux éventuellement en savoir plus avec json_last_error_msg().

    Vérifie également que le script distant n'affiche pas d'espaces (ou d'autres caractères "blancs") avant ou après l'affichage du JSON.

  3. #3
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 15
    Par défaut
    Voila ce que me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $json = file_get_contents($url);
    $data = json_decode($json,true);
    $error = json_last_error_msg();
    var_dump($data, $error === JSON_ERROR_UTF8);
    résultat :
    Je n'ai pas de caractère blanc avant ou après.

  4. #4
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 998
    Par défaut
    $error === JSON_ERROR_UTF8
    Ça ne risque pas de marcher vu que json_last_error_msg() renvoie une chaîne de caractères (autrement dit, il faut l'afficher).

  5. #5
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 15
    Par défaut
    En effet

    Du coup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $json = file_get_contents($url);
    $data = json_decode($json,true);
    $error = json_last_error_msg();
    var_dump($data, $error);
    renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NULL
    string(12) "Syntax error"
    Cela ne m'aide pas beaucoup plus

  6. #6
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 998
    Par défaut
    Et tu as testé $data = json_decode(rtrim($json, ','), true); ? Ou cherche une virgule qui traîne en fin de tableau.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Récupération données JSON dans un fichier TWIG
    Par Joyden dans le forum Symfony
    Réponses: 1
    Dernier message: 07/03/2015, 13h53
  2. Récupération en JSON
    Par benmia dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 06/03/2015, 21h32
  3. Récupération de JSON avec l'API de Klout
    Par Eroatlan dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/07/2014, 05h55
  4. Récupération structure JSON
    Par Furil dans le forum jQuery
    Réponses: 7
    Dernier message: 04/07/2013, 12h18
  5. Récupération message JSON depuis fichier JS distant sous IE
    Par JBViper dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/11/2009, 12h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo