Salut
(Je suis en train d’utiliser Google Traduction)
J’ai un problème lors de l’utilisation de guillemets
Il fait varier un élément dans un virtuel de type info avec la valeur ,
"0055"
il me montre 0055. J’ai besoin de garder les guillemets.
comment je peux le faire?
MarcF
Juillet 17, 2020, 5:31
3
Essaie avec 2 doubles côtes de chaque côté
Sans conviction
1 « J'aime »
pifou
Juillet 17, 2020, 7:58
4
essaye sinon en échappant les quote avec l’antislash :
\"0055\"
2 « J'aime »
Salut:
J’ai essayé ce qui suit
""0055"" >>> résultat: 0055
\"0055\" >>> résultat: \0055\
'"0055"' >>> résultat: '0055'
J’ai besoin de garder les citations car c’est pour construire une PAYLOAD en mqtt.
jpty
Juillet 19, 2020, 10:03
6
Bonsoir
Sans modification du plugin, toutes les doubles quotes sont supprimées.
Le plugin contient ce genre d’instruction pour les infos de type texte:
$result = str_replace('"', '', $result);
Les simples quotes semblent être conservées et devraient pouvoir être utilisées pour délimiter un texte.
1 « J'aime »
Mon problème est qu’il doit y avoir des guillemets doubles pour que le json soit correct
Salut
(Je suis en train d’utiliser Google Traduction)
J’ai un problème lors de l’enregistrement d’un PAYLOAD de type action.
Il a ce format
{"ID_TRANS": "0055", "DATE": "2020-07-17 09:06:00"}
Cependant, quand je le donne pour le sauvegarder, il le transforme en
{"ID_TRANS": 55, "DATE": "2017-11-16 09:06:00"}
Donc, dans la réponse à l’autre bout, je me trompe de format
{"DATE": "2020-07-17 09:06:02", "ERR_CODE": "E002", "ERR_MESSAGE": "Wrong JSON"}
Serait-ce un bug dans le plugin?
Gsyltc
Juillet 18, 2020, 1:47
10
Oui sûrement, car le format d’origine est bien un json valide
tu peux le vérifier d’ailleurs car il y a plein de linter json disponible gratuitement sur le net.
Autre piste. L’objet de destination à peut-être un format invalide (string au lieu d’un integer)
1 « J'aime »
Salut:
Je pense que c’est le problème de Jeedom. J’ai essayé de donner ces valeurs dans un virtuel:
""0055"" >>> résultat: 0055
\"0055\" >>> résultat: \0055\
'"0055"' >>> résultat: '0055'
Gsyltc
Juillet 20, 2020, 1:58
12
et "\"0055\""
? ca devrait donner "0055"
?
jpty
Juillet 20, 2020, 8:18
14
Ça confirme ce que j’ai écrit dans l’autre discussion:
Bonsoir
Sans modification du plugin, toutes les doubles quotes sont supprimées.
Le plugin contient ce genre d’instruction pour les infos de type texte:
$result = str_replace('"', '', $result);
Les simples quotes semblent être conservées et devraient pouvoir être utilisées pour délimiter un texte.
1 « J'aime »
Oui.
Pour respecter la norme json, il doit s’agir de doubles quotes . Je ne peux pas utiliser de simples quotes
jpty
Juillet 20, 2020, 1:44
16
Essayez de modifier temporairement le fichier plugins/virtual/core/class/virtual.class.php
Commentez la ligne 317 qui supprime les doubles quotes pour voir si ça fonctionne mieux.
// $result = str_replace('"', '', $result);
Quelle est la provenance de la valeur "0055"
?
Si elle existe ailleurs que dans un virtuel allez la chercher là.
jpty:
str_replace
J’ai commenté cette ligne mais le résultat est toujours le même
"0055" >>> 0055
root@jeedom:/var/www/html/plugins/virtual/core/class# diff virtual.class.php virtual.class.php.copy
317c317
< //$result = str_replace('"', '', $result);
---
> $result = str_replace('"', '', $result);
Que 0055 fait partie d’une MQTT PAYLOAD et pour respecter le format, il doit être placé entre guillemets
Bonjour,
Est-ce que tu peux montrer un peu plus de code pour voir comment tu charges les zones ?
A+
Bernard