[RESOLU] La fonction json_decode() retourne NULL??

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] La fonction json_decode() retourne NULL??

Re: La fonction json_decode() retourne NULL??

par sirakawa » 30 nov. 2013, 10:50

J'ai eu de problèmes analogues avec d'autres fonctions (sans rapport avec json, mais sait-on?) liées aux fins de lignes et aux fins de chaîne dans laquelle était stocké le fichier.

Re: La fonction json_decode() retourne NULL??

par stgcici » 29 nov. 2013, 18:16

Merci.

Re: La fonction json_decode() retourne NULL??

par xTG » 29 nov. 2013, 16:16

Le problème avec cette fonction c'est que tu as plusieurs cas d'échec mais qu'on sait pas lequel a triggué...
Tu peux faire le test en supprimant des parties de ton json pour espérer trouver une portion qui lui pose problème.
Mais j'y crois moyen.
Je n'ai pas d'autres idées.

Re: La fonction json_decode() retourne NULL??

par stgcici » 29 nov. 2013, 16:04

Merci beaucoup pour ton aide.
Grâce au tuto et à tes conseils j'ai fais les configurations(j'utilise notepade ++ comme éditeur et j'ai activé l'option utf8, le contenu de mon fichier est déjà en utf8 puis ce que je fais le teste avec la fonction mb_detecte_encoding() qui retourne utf8) possibles concernant l'encodage utf8.
Mais le problème est que le résultat reste le mêmehttp://forum.phpfrance.com/posting.php?mode=reply&f=8&t=269697# (retourne toujours null).
Je ne sais plus quoi faire?
Une fois de plus je tiens à te remercié pour ton aide.
a+

Re: La fonction json_decode() retourne NULL??

par xTG » 28 nov. 2013, 19:07

Il faudrait savoir avec quel encodage ton fichier json a été enregistré (faisable avec notepad++ par exemple).
Ensuite il faut savoir avec quel encodage ton PHP est configuré.
Et enfin savoir que json_decode ne fonctionne qu'avec des chaînes UTF-8.

J'en conclue au moins une chose avec tes retours.
C'est que le script php est enregistré en utf-8 puis que le décodage fonctionne si tu copies/colle le json dedans.

Des pistes ici : faq-tutoriels/encodage-utf-t245062.html

Re: La fonction json_decode() retourne NULL??

par stgcici » 28 nov. 2013, 18:04

Pardon est ce que tu peut être un peu explicite.Je ne comprend pas ce que tu me demande.
Mon fichier est au format json.
Le problème est que quand je récupère le contenu du fichier avec file_get_contents() et que je le transmet à la fonction json_decode() elle retourne NULL comme résultat.

$data=file_get_contents("fichier.json");
$data=utf8_encode($data);
$val=json_decode($data,true);
var_dump($data);//affiche NULL
J'ai utilisé des fonctions comme utf8_encode(), mais le résultat reste le même.

Re: La fonction json_decode() retourne NULL??

par xTG » 28 nov. 2013, 17:10

Encodage du fichier ? ;)

Re: La fonction json_decode() retourne NULL??

par stgcici » 28 nov. 2013, 15:16

Merci.
Au faite j'avais mal copier le contenu de mon fichier json et grâce au site j'ai pu détecte et corrigé les erreurs.
Cependant le même problème persiste toujours.
J'ai toujours un NULL comme retour.
Par contre quand je copie directement le contenu du fichier json dans la fonction json_decode() en prenant bien sûre le soin de mettre le contenu entre uniquote ' contenu fichier json ' sinon ça ne ça marche pas.

$data =json_decode('{
"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
}',true);
var_dump($data); //on affiche correctement le résultat

Pourtant moi ce que je veux c'est de pouvoir récupérè le contenu du fichier json et l'affecte à une variable ($data) et ensuite le passè a la fonction
json_decode().Dans se cas la fonction retourne NULL.
$data=file_get_contents("test.json");
$val=json_decode($data,true);
var_dump($val);// retourne Null

Comment faire?
Merci

Re: La fonction json_decode() retourne NULL??

par moogli » 28 nov. 2013, 14:45

salut,

ton json n'est pas valide (3 erreurs).

tu peux tester, par exemple, sur ce site il a l'avantage de te formater le code de façon lisible et de t'indiquer les erreurs ;)
(même chose sur le site que tu indique).
nous n'avons le "bon code" json?

Code : Tout sélectionner

{ "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 }
@+

La fonction json_decode() retourne NULL??

par stgcici » 28 nov. 2013, 13:54

Bonjour,
Je suis un nouveau membre
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.
SOS aide s'il vous plait.
Voila mon fichier json:

Code : Tout sélectionner

{"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 récupère le contenu du fichier avec file_get_contents() et je l'affecte a la variable $data.
$valeur=json_decode($data,true);
var_dump($valeur);// on m'affiche NULL
Pourtant la structure de mon fichier json est correcte.(sur http://www.functions-online.com/json_decode.html il m'affiche correctement le résultat).

Présentement je suis bloqué j'ai vraiment besoin de votre soutient.
Merci