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 :

json_decode() ne retourne rien du tout


Sujet :

Langage PHP

  1. #1
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Points : 1 935
    Points
    1 935
    Par défaut json_decode() ne retourne rien du tout
    Bonjour Toutes et Tous,

    Depuis un certain temps j'observe un peu partout un mot inconnu étant JSON .

    Curieux comme un développeur, je me documente et suis plutôt ravi de cette méthode très légère.

    Mais depuis plusieurs heures, ne suis même pas fichu de retourner un résultat via un tout bête fichier .json

    J'ai pourtant écumé bien des sites parlant justement de souci avec cette fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php
    	// https://waytolearnx.com/2019/10/lire-un-fichier-json-avec-php.html
    	/*
    		$data = '{"name" : "Alex", 
    				"age" :  "25", 
    				"address" : "Paris",
    				"sex" : "indeterminé"
    				}';
    
    		$obj = json_decode($data);
    		echo $obj->sex; // Impec !
    	*/
    	header('Content-type: application/json;'); // Avec ou sans = idem
     
     
    	// chemin d'accès à votre fichier JSON
    	$file = 'file.json'; 
    	// mettre le contenu du fichier dans une variable
    	$data = file_get_contents($file); 
    echo $data; // OK
     
    	// décoder le flux JSON
    	$obj = json_decode($data, TRUE); 
    echo $obj; // Que dalle !
     
    	// accéder à l'élément approprié
    	echo $obj[0]->name;  
    ?>
    Ensuite mon fichier nommé file.json :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    [
      {
        "name": "Alex",
        "age": "25",
        "address": "Paris"
      },
      {
        "name": "Emily",
        "age": "18",
        "address": "Toulouse"
      },
      {
        "name": "Thomas",
        "age": "22",
        "address": "Lile"
      }
    ]
    Je précise que tout est en UTF-8.

    En guise de résultat, existe seulement le mot Array sur la page PHP. Mais même avec d'autres données sans tableau, là ça ne retourne strictement rien

    Je suppose que chez Gandi le JSON est enabled et fonctionnel (voir image épinglée)


    Merci d'avance de vos conseils.

    DS7
    Images attachées Images attachées  

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 267
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 267
    Points : 8 565
    Points
    8 565
    Billets dans le blog
    17
    Par défaut
    Essaie sans le TRUE dans ton json_decode() ligne 23

  3. #3
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Points : 1 935
    Points
    1 935
    Par défaut
    Séb

    Le pire est que j'avais déjà essayé, mais en vain

    Suite à cela j'ai encore recherché et j'avais trouvé la réponse suivante : si le .json est un tableau, hé bien le TRUE était obligatoire et même que cela était indiqué en notice.

    Merci encore de ce dépannage

    De plus je crois que cette méthode JSON va me réconcilier avec les BdD !

    Venant d'un autre langage mais compilé, ce JSON ressemble beaucoup au fichier INI, mais en bien plus puissant.

    DS7

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 267
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 267
    Points : 8 565
    Points
    8 565
    Billets dans le blog
    17
    Par défaut
    JSON est bien pratique pour échanger des données client/serveur, surtout avec le fetch() JavaScript avec lequel il s'intègre parfaitement.

    si le .json est un tableau, hé bien le TRUE était obligatoire
    Devait y avoir autre chose. Si le fichier JSON contient un tableau à la racine alors tu obtiendras bien un tableau PHP.

    Ce 2e paramètre de json_decode() sur TRUE est utile si tu veux vraiment coller au plus près de ta source JSON : "J'ai un objet JSON => Je veux un objet PHP" (il est vrai qu'en PHP on travaille plutôt sur des tableaux associatifs)

  5. #5
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Points : 1 935
    Points
    1 935
    Par défaut
    Séb, en effet j'ai tout plein de choses à découvrir avec émerveillement de ce monde JSON.

    Je suis fasciné du parfait mariage et complément avec JS et PHP (et certainement d'autres langages).

    Merci @ + et au plaisir

    DS7

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

Discussions similaires

  1. [Java][debutant]select count(*) ne retourne rien !!
    Par Invité dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 24/01/2007, 12h39
  2. Erreur query ne retourne rien
    Par TeddyBEER dans le forum Outils
    Réponses: 3
    Dernier message: 28/04/2006, 16h09
  3. Action sur un bouton..Je comprends plus rien du tout!
    Par koolway dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 26/04/2006, 11h17
  4. Si mysql ne retourne rien que faire ?
    Par pierrera dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/02/2006, 12h12
  5. SELECT qui ne retourne rien à cause d'anti-slash
    Par mikyfpc dans le forum Outils
    Réponses: 8
    Dernier message: 08/08/2005, 00h04

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