La fonction json_decode() retourne NULL??

Résolu
stgcici Messages postés 51 Statut Membre -  
jacksoni Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai un sérieux problème avec la fonction json_decode().
Il me retourne NULL quand je lui transmet mon fichier json.
Au faite il n'arrive pas à extraire le contenu du fichier json que je lui passe.
Je recupere le contenu du fichier json avec file_get_contents() et je l'affecte a une variable,ensuite je le passe à la fonction json_decode().

$data=file_get_contents("test.json");
$val=json_decode($data,true);
var_dump($val);// retourne Null

SOS aide s'il vous plait.
Voila mon fichier json:

"orders":[
{
"id_commande":44,
"date":"2013-11-26T10:30:00",
"status":"Waiting",
"customerName":"ok",
"delivery":"ok",
"deliveryCompanyName":"Mp",
"deliveryAddress":"Rennequin ",
"deliveryPostcode":"75",
"deliveryCity":"Paris",
"deliveryCountry":"France",
"billingName":"B S",
"billingCompanyName":"Mp",
"billingAddress":"Rennequin ",
"billingPostcode":"750",
"billingCity":"Paris",
"billingCountry":"France",
"products":[
{
"image":"products_no_image_Medium.jpg",
"title":"Bracelet",
"brand":"HIPANEMA",
"quantity":1.0,
"price":15,
"productId":24,
"offerId":13
}
],
"totalPrice":15,
"productsCount":1
},
{
"id_commande":4462,
"date":"2013-11-26T10:35:00",
"status":"Waiting",
"customerName":"BS",
"deliveryName":"B",
"deliveryCompanyName":"Mp",
"deliveryAddress":"ok",
"deliveryPostcode":"75",
"deliveryCity":"Paris",
"deliveryCountry":"France",
"billingName":"BS",
"billingCompanyName":"Mp",
"billingAddress":"ok ",
"billingPostcode":"75",
"billingCity":"Paris",
"billingCountry":"France",
"products":[
{
"image":"products_no_image_Medium.jpg",
"title":"Tropez",
"brand":"HIPA",
"quantity":2.0,
"price":15,
"productId":25,
"offerId":133522
}
],
"totalPrice":300,
"productsCount":2
}
],
"recordsReturned":2,
"totalRecords":2,
"startIndex":1,
"sort":0,
"pageIndex":1,
"pageSize":50
}

Je suis vraiment bloqué.
Aidez moi SVP!!

4 réponses

  1. Utilisateur anonyme
     
    Bonjour

    As-tu essayé de valider ton fichier JSON avec http://www.jsoneditoronline.org/ ?
    Tu verrais qu'il manque un { au début.
    2
    1. stgcici Messages postés 51 Statut Membre 1
       
      Merci beaucoup pour ta réponse.
      C'est en voulant copier le contenu du fichier json sur le forum que j'ai oublié l'accolade ouvrante.
      Sinon j'ai eu à tester la structure de mon fichier json et il est correct.
      Le même problème persiste.
      J'obtiens toujours null!!!
      J'ai même convertie la chaîne retournée par la fonction file_get_contents() en utf8 avec utf8_encode.
      Toujours la même chose.
      0
  2. Utilisateur anonyme
     
    Question très bête, mais on ne sait jamais : as-tu fait un var_dump($data) pour t'assurer que ton fichier était bien lu ?
    1
    1. Utilisateur anonyme
       
      Je viens d'essayer ton script et tes données chez moi, ça marche bien
      0
    2. stgcici Messages postés 51 Statut Membre 1
       
      oh oui.
      Je fais un var_dump($data) et c'est ce qui donne Null comme résultat.
      C'est vraiment bizarre.
      Je ne sais pas ou se trouve mon erreur.
      0
    3. stgcici Messages postés 51 Statut Membre 1
       
      Salut,
      Pardon j'aimerai savoir c'est quelle version de php tu utilise?
      Parce que moi j'utilise la version 5.2.13.
      Peut être que c'est un problème de version.
      Merci
      0
  3. Utilisateur anonyme
     
    Je fais un var_dump($data) et c'est ce qui donne Null comme résultat.
    C'est vraiment bizarre.

    Ça n'a rien de bizarre du tout.
    Si var_dump($data) te donne Null, c'est que ton fichier est mal lu : Json ne peut rien décoder puisqu'il n'y a rien.
    La version de PHP n'y est pour rien
    À 99,99%, tu te trompes dans le nom du fichier test.json (majuscules/minuscules ?) , ou il n'est pas dans le bon dossier, ou le contenu du fichier n'est pas celui que tu as indiqué.

    Que t'affiche :
    <?php
    $fichier="test.json";
    echo is_file($fichier) ? "existe" : "n'existe pas";
    echo filesize($fichier);
    ?>
    1
    1. stgcici Messages postés 51 Statut Membre 1
       
      Bonjour,
      Grâce a tes conseils j'ai pu résoudre le problème.
      Merci beaucoup
      0
  4. jacksoni Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
     
    It is a very profitable post for me. I’ve enjoyed reading the post. It is very informative and useful post. I would like to visit the post once more its valuable content
    http://jsonconverter.com/
    0