PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WEBDEV 2024 → Erreur fonction désérialise
Erreur fonction désérialise
Iniciado por François B., 27,nov. 2019 16:30 - 6 respuestas
Publicado el 27,noviembre 2019 - 16:30
Bonjour,

Dans une procédure j'ai écrit ce code :
Procedure create_data_tab(sValeurs est un Buffer)

Data_tab est un tableau de chaînes
Désérialise(Data_tab, sValeurs, psdJSON)

RENVOYER Data_tab

Le but de la procédure est de récupérer les valeurs contenues dans un JSON afin de les stocker dans un tableau afin de modifier un graphique JS.
Quand j'exécute la procédure grâce à AJAXExecute, j'ai une erreur "L'élément JSON n'est pas une valeur." avec le code associé : 2613.
Je n'arrive pas à savoir ce que veut dire l'erreur, le débugueur n'affiche rien d'anormal, et je ne trouve rien de concluant sur internet.

Pourriez vous m'aider svp?

Merci
Miembro registrado
477 mensajes
Popularité : +20 (20 votes)
Publicado el 28,noviembre 2019 - 18:42
Le message fait référence a la valeur du paramètre passé a la procédure
Publicado el 29,noviembre 2019 - 10:59
C'est étrange, j'envoie un JSON dont j'ai vérifié la validité, l'erreur persiste
Voici le JSON en question :

[
{ "nMesure":"30", "nMesure2":"138", "sAggregat":"2017\/05" },
{ "nMesure":"219", "nMesure2":"1297", "sAggregat":"2017\/06" },
{ "nMesure":"1626", "nMesure2":"605", "sAggregat":"2017\/07" },
{ "nMesure":"565", "nMesure2":"305", "sAggregat":"2017\/08" },
{ "nMesure":"687", "nMesure2":"376", "sAggregat":"2017\/09" },
{ "nMesure":"784", "nMesure2":"473", "sAggregat":"2017\/10" },
{ "nMesure":"1434", "nMesure2":"551", "sAggregat":"2017\/11" },
{ "nMesure":"1158", "nMesure2":"313", "sAggregat":"2017\/12" },
{ "nMesure":"4988", "nMesure2":"449", "sAggregat":"2018\/01" },
{ "nMesure":"2618", "nMesure2":"544", "sAggregat":"2018\/02" },
{ "nMesure":"1101", "nMesure2":"630", "sAggregat":"2018\/03" },
{ "nMesure":"16", "nMesure2":"13", "sAggregat":"2018\/04" }, 
{ "nMesure":"0", "nMesure2":"10", "sAggregat":"2018\/07" }
]

Peut-être que webdev n'arrive pas à le comprendre?
Publicado el 29,noviembre 2019 - 13:07
"François B." avait énoncé :
C'est étrange, j'envoie un JSON dont j'ai vérifié la validité, l'erreur
persiste
Voici le JSON en question :

[
{ "nMesure":"30", "nMesure2":"138", "sAggregat":"2017\/05" },
{ "nMesure":"219", "nMesure2":"1297", "sAggregat":"2017\/06" },
{ "nMesure":"1626", "nMesure2":"605", "sAggregat":"2017\/07" },
{ "nMesure":"565", "nMesure2":"305", "sAggregat":"2017\/08" },
{ "nMesure":"687", "nMesure2":"376", "sAggregat":"2017\/09" },
{ "nMesure":"784", "nMesure2":"473", "sAggregat":"2017\/10" },
{ "nMesure":"1434", "nMesure2":"551", "sAggregat":"2017\/11" },
{ "nMesure":"1158", "nMesure2":"313", "sAggregat":"2017\/12" },
{ "nMesure":"4988", "nMesure2":"449", "sAggregat":"2018\/01" },
{ "nMesure":"2618", "nMesure2":"544", "sAggregat":"2018\/02" },
{ "nMesure":"1101", "nMesure2":"630", "sAggregat":"2018\/03" },
{ "nMesure":"16", "nMesure2":"13", "sAggregat":"2018\/04" },  { 
"nMesure":"0", "nMesure2":"10", "sAggregat":"2018\/07" }
]

Peut-être que webdev n'arrive pas à le comprendre?


juste une question sans doute idiote ?

ah ben non je confirme qu'elle est idiote
en lisant ton post je voyais une sorte de V bizarre dans le code
2018V07
du coup je me demandais si ce n'était pas un caract spécial qui
plantait ton json
en y répondant, je vois que ce n'est pas un V mais un \ suivi d'un /
selon le type de caractères, on ne lit pas la même chose lol
Publicado el 02,diciembre 2019 - 10:37
Pas de souci, je pense avoir compris d'où vient le problème.
Je pense que WebDev n'arrive a désérialiser que les JSON qu'il a auparavant créé en sérialisant.
Pour contourner le problème, j'ai fait un JSONVersVariant, puis j'ai ajouté chacun des éléments dans une case de tableau.
Ensuite, la sérialisation et désérialisation se font comme il faut.
Miembro registrado
950 mensajes
Popularité : +53 (63 votes)
Publicado el 02,diciembre 2019 - 11:36
Bonjour,

Windev / Webdev peut lire tous les Json,

pour lire ton json, il faut creer une structure du meme type que le json

je m'explique,

tu veux deserialiser "nMesure":"16", "nMesure2":"13", "sAggregat":"2018\/04" dans un tableau de chaine or ce n'est pas un tableau de chaine c'est un tableau de structure

Il faut donc faire
MaMesure est une structure
nMesure est une chaîne ANSI
nMesure2 est un chaîne ANSI
sAggregat est une chaîne ANSI
FIN

Machainejson est une chaîne ANSI = [
[{ "nMesure":"30", "nMesure2":"138", "sAggregat":"2017\/05" },
{ "nMesure":"219", "nMesure2":"1297", "sAggregat":"2017\/06" },
{ "nMesure":"1626", "nMesure2":"605", "sAggregat":"2017\/07" },
{ "nMesure":"565", "nMesure2":"305", "sAggregat":"2017\/08" },
{ "nMesure":"687", "nMesure2":"376", "sAggregat":"2017\/09" },
{ "nMesure":"784", "nMesure2":"473", "sAggregat":"2017\/10" },
{ "nMesure":"1434", "nMesure2":"551", "sAggregat":"2017\/11" },
{ "nMesure":"1158", "nMesure2":"313", "sAggregat":"2017\/12" },
{ "nMesure":"4988", "nMesure2":"449", "sAggregat":"2018\/01" },
{ "nMesure":"2618", "nMesure2":"544", "sAggregat":"2018\/02" },
{ "nMesure":"1101", "nMesure2":"630", "sAggregat":"2018\/03" },
{ "nMesure":"16", "nMesure2":"13", "sAggregat":"2018\/04" }, {
"nMesure":"0", "nMesure2":"10", "sAggregat":"2018\/07" }]
]

Data_tab est un tableau de MaMesure
Désérialise(Data_tab, Machainejson, psdJSON)
RENVOYER Data_tab


Jordan
Publicado el 02,diciembre 2019 - 16:48
Merci pour cette explication claire et efficace :)