Bloc code - déclaration variable en dehors du bloc code

Il semblerait que le core ne prévoit pas la possibilité de la sauvegarde d’un JSON dans une variable.
Il reste la possibilité de le faire avec une commande info.

Tu peux essayer ça

// A conserver uniquement pour TEST
$jsonobj = '{"0h":35,"1h":37,"2h":43,"3h":43,"4h":43,"5h":43,"6h":43,"7h":43,"8h":43,"9h":43,"10h":43,"11h":43,"12h":43,"13h":43,"14h":43,"15h":43,"16h":43,"17h":43,"18h":43,"19h":43,"20h":43,"21h":43,"22h":3,"23h":43}';

// chargement de la variable Jeedom ds la variable php "$jsonobj"
//$jsonobj = $scenario->getData($jsonobj);

// décodage tableau JSON
$arrayobj=json_decode($jsonobj,true);
$scenario->setLog($arrayobj);
$a = print_r($arrayobj, true);
$scenario->setLog($a);

// recherche d'une valeur ds l'image du tableau json
$value=intval($arrayobj["22h"]);
$scenario->setLog($value);

// modification d'une valeur ds l'image du tableau json
$scenario->setLog($arrayobj["20h"]);
$arrayobj["20h"]="999";
$scenario->setLog($arrayobj["20h"]);

// encodage tableau json + transfert ds variable jeedom
$scenario->setData('testjson', implode($arrayobj,','));
$scenario->setLog(json_encode($arrayobj));

image
On perds les heures mais bon comme c’est toujours un tableau de 0 à 23, c’est pareil
Du coup, un tableau tout con, c’est mieux à mon avis

Super, ca fonctionne nickel.
Merci bcp à vous 2.

Ci-dessous le code final :

// récupération variable jeedom + décodage tableau via explode (coupe une chaine en segment)
$Temperature=$scenario->getData('testjson');
$arrayobj=explode(',',$Temperature);
$a = print_r($arrayobj, true);
$scenario->setLog($a);

// recherche d'une valeur ds l'image du tableau
$value=intval($arrayobj[3]);
$scenario->setLog($value);

// modification d'une valeur ds l'image du tableau
$scenario->setLog($arrayobj[3]);
$arrayobj[0]="222";
$scenario->setLog($arrayobj[3]);

// encodage tableau via  implode (Rassemble les éléments d'un tableau séparateur en une chaîne)  + transfert ds variable jeedom
$scenario->setData('testjson', implode($arrayobj,','));
$scenario->setLog(json_encode($arrayobj));
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.