Decode JSON dans plugin KO

Bonjour,
J’ai un pti soucis dans un plugin que je suis en train de développer pour interpréter un flux JSON.
Le flux JSON est stocké dans un fichier temporaire … lorsque le lit ce fichier je récupère bien mon flux json mais la conversion en Array ne fonctionne pas … j’imagine que c’est un truc gros comme moi … :slight_smile: … mais je trouve pas … et je sais que l’oeil extérieur est toujours la solution… :face_with_monocle:

Code du plugin :

$tmpFile=sys_get_temp_dir()."/testPlugin_session_".$this->id;
if (is_file($tmpFile)) {
	$fd=fopen($tmpFile, "r");
	$readLine=fgets($fd);

	if (isset($readLine)) {
		log::add('testPlugin', 'debug', "			==> Read config file .. datas $readLine");
		$arrayDecode=json_decode($readline,true);
		log::add('testPlugin', 'debug', "			==> encode array json get sessionID test 2: " .$arrayDecode["sessionID"]);
		log::add('testPlugin', 'debug', "			==> implode array : " .implode($arrayDecode));

La log est la suivante :

==> Read config file .. datas {"sessionID":"dmo3fk5d4gw2v0nnrixkomqbt1k7tyar","sessionIDExpires":"Thu, 12-Nov-2020 13:27:05 GMT","xcsrfToken":"eYY40mGIHpnrUGvhqTO1BU0Z2sYyeoPlSexePzH9PORJKwY8F2trdmtgp6EUesRa","xcsrfTokenExpires":"Thu, 11-Nov-2021 13:07:05 GMT","pk":17067}
[2020-11-12 15:46:54][DEBUG] : 			==> encode array json get sessionID test 2: 
[2020-11-12 15:46:54][DEBUG] : 			==> implode array : 

On remarque que la ligne du fichier contenant le json est récupérée correctement mais qu’après je n’arrive pas à la convertir en array et à extraire les infos…

Du coup je me suis dit que j’allais tester dans un scénario … plus rapide pour faire les tests … le scénario est le suivant :

$scenario->setLog("Start");
$json='{"sessionID":"dmo3fk5d4gw2v0nnrixkomqbt1k7tyar","sessionIDExpires":"Thu, 12-Nov-2020 13:27:05 GMT","xcsrfToken":"eYY40mGIHpnrUGvhqTO1BU0Z2sYyeoPlSexePzH9PORJKwY8F2trdmtgp6EUesRa","xcsrfTokenExpires":"Thu, 11-Nov-2021 13:07:05 GMT","pk":17067}';
$array=json_decode($json,true);
$scenario->setLog("JSON : $json");

if (isset($array["sessionID"])) {
  $scenario->setLog("Array sessionid existe : ".$array["sessionID"]);
}
$scenario->setLog("End");

Et ma log du scénario :

[2020-11-12 15:49:20][SCENARIO] Start
[2020-11-12 15:49:20][SCENARIO] JSON : {"sessionID":"dmo3fk5d4gw2v0nnrixkomqbt1k7tyar","sessionIDExpires":"Thu, 12-Nov-2020 13:27:05 GMT","xcsrfToken":"eYY40mGIHpnrUGvhqTO1BU0Z2sYyeoPlSexePzH9PORJKwY8F2trdmtgp6EUesRa","xcsrfTokenExpires":"Thu, 11-Nov-2021 13:07:05 GMT","pk":17067}
[2020-11-12 15:49:20][SCENARIO] Array sessionid existe : dmo3fk5d4gw2v0nnrixkomqbt1k7tyar
[2020-11-12 15:49:20][SCENARIO] End

Tout fonctionne parfaitement … :exploding_head: …là question est qu’est-ce qui cloche dans le code que j’ai produit dans le plugin ?
Par avance merci pour vos retour.
Chris94440

Hello,

Les variables sont sensible a la casse.

Regarde bien dans ton json_decode tu as mis le L en minuscule sur ta variable. Du coup il trouve pas le contenu.

Bien jouré @mguyard… ça fait une heure que je regarde mon code!!!
Je savais que l’oeil extérieur était infaillible!!! …je test et passe en résolu si tout est OK

Bonsoir,
Le moins que tu puisses faire est d’attribuer la solution à @mguyard et pas à toi

Il suffit de le dire et d’utiliser la case signalement :wink:

Généralement, quand je code, je ne retape jamais le nom d’une variable, je fais à chaque fois un copier/coller.

1 « J'aime »

Faut pas abuser, je ne vais pas signaler alors qu’il ne s’agit peut-être que d’une maladresse.
Bonne soirée

Désolé j’avais même pas conscience que la notion de ‹ ‹ solution › › était liée au membres qui avait trouvé le problème … je pensais juste que cela passait le post en résolut … désolé @mguyard c’est en effet une maladresse de ma part … merci encore à toi.

Je fais cela aussi normalement mais apparemment pas cette fois…j’avais la tête dans le sac et je voyais pas ce qui clochait

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.