FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 2024
→
Désérialisation d'objets aux paramètres inconnus
Désérialisation d'objets aux paramètres inconnus
Débuté par Paul, 28 sep. 2016 13:26 - 3 réponses
Connectez-vous…
Paul
#1
Membre enregistré
10 messages
Posté le 28 septembre 2016 - 13:26
Bonjour,
Je cherche actuellement à désérialiser mon json dans un objet qui aura des membres de type structure.
Exemple:
{
"titre"
:
"nom"
,
"tabNomChamp"
: {
"col_id"
:
"tpr_id"
,
"col_bl"
:
"num_commande"
,
"col_cb"
:
"param_cb"
,
"col_client"
:
"tpr_id"
,
"col5"
:
"tpr_photo"
,
"col_photo"
:
"tpr_photo"
}
}
Ce que je faisais jusque là c'était de désérialiser dans un objet qui a un membre de type string et un autre qui est une structure définie de cette manière:
strucString is
structure
col_id is
string
col_bl is
string
col_cb is
string
col_client is
string
col5 is
string
col_photo is
string
FIN
Le problème maintenant est que le nombre de champ et le nom des champs de ma structure sont variables. Je récupère les libellés dans un tableau et j'aimerais pouvoir créer une structure en fonction de ce tableau, ou bien avoir une solution alternative pour désérialiser: si je ne me trompe pas, tabNomChamp étant un objet, je ne peut le désérialiser que dans une structure ou un objet.
Il y a peut être une solution avec des opérateurs d'indirection, mais je ne la vois pas, c'est pourquoi je recherche un petit coup de main.
Merci d'avance,
Cordialement,
Paul
Signaler
0
0
Yann
#2
Membre enregistré
256 messages
Popularité : +29 (29 votes)
Posté le 28 septembre 2016 - 14:25
Bonjour
Vous pouvez utiliser le type Variant
v est un variant
v
=
JSONVersVariant
(
...
)
Les membres du variant sont :
- soit accessibles directement : v.tabNomChamp.col_id
- soit explorables récursivement grâce à la propriété ..Membre qui renvoie le tableau des sous-membres
Signaler
0
0
Paul
#3
Membre enregistré
10 messages
Posté le 28 septembre 2016 - 14:28
Merci pour votre réponse Yann
Malheureusement, je développe sur windev mobile pour android et le type variant n'y est pas disponible.
Signaler
0
0
Paul
#4
Membre enregistré
10 messages
Posté le 10 octobre 2016 - 10:02
Bon j'ai résolu mon problème grâce à cette contribution:
http
:
/
/
repository.windev.com
/
resource.awp
?
file_id
=
200
;
json
-
utilities
-
from
-
hilario
-
perez
-
corona
La procédure parse le json dans un tableau associatif. En remplaçant les variables de type variant en variables de type string, on peut accéder aux éléments de cette façon:
arrayGénérée
[
"elem.sousElem"
]
Et comme c'est bien fait, pour chaque tableau/objet json, ça me génère ceci:
arrayGénérée
[
"tab.count"
]
qui me renvoie le nombre de sous éléments.
Signaler
0
0
→ Revenir à WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte