La fonction json_decode() retourne NULL??

Résolu
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. Bonjour

    As-tu essayé de valider ton fichier JSON avec http://www.jsoneditoronline.org/ ?
    Tu verrais qu'il manque un { au début.
    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.
  2. 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/
    1. 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. Bonjour,
        Grâce a tes conseils j'ai pu résoudre le problème.
        Merci beaucoup
    2. 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. Je viens d'essayer ton script et tes données chez moi, ça marche bien
      2. 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.
      3. 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