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 :

Fichier JSON et PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 131
    Par défaut Fichier JSON et PHP
    Bonjour,

    J'ai de nombreuses interrogations concernant la manipulation d'un fichier JSON et PHP, donc voici la 1ere:

    Pour comprendre, j'ai récupéré l'intégralité des valeurs de mon settings.json de vsc, et copier ces dernières dans un nouveau fichier nommé => json.json (Ca c'est pour expliquer d’où viennent les données) !

    Alors voici mon code de lecture des lignes du fichier:
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $file = 'json.json'; 
    $data = file_get_contents($file);
    $obj =  json_decode($data, true);
     
    foreach($obj as $objets => $val)
     {    
         echo "Tabs =>  " . $objets . " - Valeur => " . $val ."<br>";
     }

    Ce qui me provoque une erreur à la récupération de sous-tbl. Pouvez vous m'expliquer pourquoi SVP et comment corriger ce premier point ? Merci

    Tabs => php.executablePath - Valeur => C:\Serveur\bin\php\php_8.0.01\php.exe
    Tabs => php.validate.run - Valeur => onType

    Warning: Array to string conversion in F:\DEV_LOCAL\www\servmodif\test_json.php on line 26
    Tabs => alignment.chars - Valeur => Array
    Tabs => liveServer.settings.donotShowInfoMsg - Valeur => 1
    Tabs => liveServer.settings.CustomBrowser - Valeur => firefox
    Tabs => intelephense.telemetry.enabled - Valeur =>
    Tabs => workbench.sideBar.location - Valeur => left
    Tabs => liveServer.settings.donotVerifyTags - Valeur => 1
    Tabs => editor.defaultFormatter - Valeur => esbenp.prettier-vscode

    Warning: Array to string conversion in F:\DEV_LOCAL\www\servmodif\test_json.php on line 26
    Tabs => [html] - Valeur => Array

    Warning: Array to string conversion in F:\DEV_LOCAL\www\servmodif\test_json.php on line 26
    Tabs => [php] - Valeur => Array
    Tabs => phpformatter.composer - Valeur => 1
    Tabs => phpserver.phpConfigPath - Valeur => C:\Serveur\bin\php\php_8.0.02
    Tabs => editor.renderControlCharacters - Valeur => 1
    Tabs => explorer.confirmDragAndDrop - Valeur =>

    Warning: Array to string conversion in F:\DEV_LOCAL\www\servmodif\test_json.php on line 26
    Tabs => liveSassCompile.settings.autoprefix - Valeur => Array
    Tabs => liveSassCompile.settings.generateMap - Valeur =>

    Warning: Array to string conversion in F:\DEV_LOCAL\www\servmodif\test_json.php on line 26
    Tabs => liveSassCompile.settings.formats - Valeur => Array

  2. #2
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Bonjour

    Citation Envoyé par gesualda Voir le message
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $obj =  json_decode($data, true);
    As-tu pris le temps de lire ce que fait le second paramètre true de ta fonction?

    Réponse ici : https://www.php.net/manual/en/function.json-decode.php

    "When true, JSON objects will be returned as associative arrays;" --> du coup, c'est un array que tu reçois, pas un objet.

  3. #3
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 131
    Par défaut
    Bonjour Christophe,

    Merci de ce retour, mais en effet, j'avais vu mais pas saisi. j'avais tenté avant mon POST avec "false" et également en y rajoutant un flag => JSON_OBJECT_AS_ARRAY.
    Bon visiblement j'ai pas compris ce qu'il y avait à faire.

  4. #4
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 131
    Par défaut
    Bonjour à tous,

    Alors j'ai toujours pas trouvé comment sortir de mon erreur.
    J'ai bien compris qu'il y avait des tbl imbriqués dans le premier, mais j'ai pas trop compris comment mon sortir.

    Peut etre un conseil. ?

  5. #5
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 698
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 698
    Par défaut
    regardez votre variable avec la fonction suivante pour voir la structure complète :
    https://www.php.net/manual/fr/function.var-dump.php

  6. #6
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 131
    Par défaut
    Bonjour Mathieu,

    J'ai contrôle la structure mais je ne trouve pas comment afficher les valeurs sans l'erreur.

    Code PHP : 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    array (size=18)
      'php.executablePath' => string 'C:\Serveur\bin\php\php_8.0.25\php.exe' (length=37)
      'php.validate.run' => string 'onType' (length=6)
      'alignment.chars' => 
        array (size=0)
          empty
      'liveServer.settings.donotShowInfoMsg' => boolean true
      'liveServer.settings.CustomBrowser' => string 'firefox' (length=7)
      'intelephense.telemetry.enabled' => boolean false
      'workbench.sideBar.location' => string 'left' (length=4)
      'liveServer.settings.donotVerifyTags' => boolean true
      'editor.defaultFormatter' => string 'esbenp.prettier-vscode' (length=22)
      '[html]' => 
        array (size=1)
          'editor.defaultFormatter' => string 'vscode.html-language-features' (length=29)
      '[php]' => 
        array (size=1)
          'editor.defaultFormatter' => string 'bmewburn.vscode-intelephense-client' (length=35)
      'phpformatter.composer' => boolean true
      'phpserver.phpConfigPath' => string 'C:\Serveur\bin\php\php_8.0.25' (length=29)
      'editor.renderControlCharacters' => boolean true
      'explorer.confirmDragAndDrop' => boolean false
      'liveSassCompile.settings.autoprefix' => 
        array (size=0)
          empty
      'liveSassCompile.settings.generateMap' => boolean false
      'liveSassCompile.settings.formats' => 
        array (size=2)
          0 => 
            array (size=3)
              'format' => string 'expanded' (length=8)
              'extensionName' => string '.css' (length=4)
              'savePath' => string '~/../css' (length=8)
          1 => 
            array (size=3)
              'format' => string 'compressed' (length=10)
              'extensionName' => string '.min.css' (length=8)
              'savePath' => string '~/../css/min' (length=12)

    J'ai tenté d'afficher les sous tableaux, mais je pense que j'ai perdu le fil. C'est toujours tout en erreur.

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach ($obj as $tbl_01 => $key_01)  {   
     
        echo 'Elements : ' . $tbl_01 . '<br>';
     
        foreach($key_01 as $tbl_02 => $key_02){
            echo $tbl_02 . ' : ' . $tbl_02 . '<br>';
        }
    }

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/04/2018, 12h47
  2. Traiter les informations d'un fichier JSON dans PHP
    Par fabio1978 dans le forum Langage
    Réponses: 4
    Dernier message: 25/04/2017, 16h59
  3. fichier json et php [site d'annonces]
    Par olivxii dans le forum Langage
    Réponses: 8
    Dernier message: 30/01/2015, 15h55
  4. Réponses: 0
    Dernier message: 04/03/2014, 15h23
  5. Création de fichier json avec PHP
    Par versus68 dans le forum Langage
    Réponses: 1
    Dernier message: 02/06/2008, 11h56

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