FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV (précédentes versions)
→
Champs optionnels dans une structure
Champs optionnels dans une structure
Débuté par Juju, 14 jan. 2019 10:16 - 4 réponses
Connectez-vous…
Juju
#1
Membre enregistré
87 messages
Popularité : +4 (4 votes)
Posté le 14 janvier 2019 - 10:16
Bonjour,
Je déclare une structure d'annonce avec tous les champs que cela implique (Titre, descriptif, prix...) que je convertit ensuite en Json pour l'envoyer en webService.
Cependant certains champs de ma structure sont optionnels... et je ne sais pas comment faire pour le gérer correctement.
st
JSONAnnonce
est une structure
mobileAdId
est un entier
// Numéro d'ordre
mobileSellerId
est un entier
// Identifiant vendeur
category
est une chaîne
// Catégorie voiture
make
est une chaîne
// Marque voiture
price
est une
st
Prix
// Utilisation de la structure prix
firstRegistration
est une chaîne
// Date de 1° immatriculation
mileage
est un entier
// Kilométrage
modelDescription
est une chaîne
// Titre annonce
damageUnrepaired
est un booléen
// Véhicule endommagé
model
est une chaîne
// Modèle voiture
vehicleClass
est une chaîne
// Classe du véhicule
...
FIN
// affectation des propriétés à l'annonce
// Champs obligatoires...
st
Annonce
:
mobileAdId
=
s
Lp
// Numéro d'ordre
st
Annonce
:
mobileSellerId
=
gs
MobileSellerId
// ID vendeur mobile.DE
st
Annonce
:
category
=
T_ANNONCE.AN_CATEGORIE
// Catégorie véhicule
st
Annonce
:
vehicleClass
=
T_ANNONCE.AN_SSCATEGORIE
// Classe véhicule
st
Annonce
:
make
=
T_ANNONCE.AN_MARQUE
// Marque
st
Annonce
:
damageUnrepaired
=
T_ANNONCE.AN_ENDOMMAGE
// Véhicule endommagé (Oui / Non)
...
// Sérialisation de l'élément
Sérialise
(
st
Annonce
,
s
ChaineJson
,
psdJSON
)
...
Mon problème est que si j'envoie des champs vides, mon webService le refuse... comment puis je faire pour déclarer des éléments dans ma structure que si mes champs ont une valeur ?
merci d'avance
Signaler
0
0
Imarkuze
#2
Posté le 14 janvier 2019 - 11:45
Bonjour,
avez-vous pensé à mettre dans les champs que vous devriez laisser vide un caractère vide qui ensuite, côté serveur, considérez vide? Par exemple "* null *"
Signaler
0
0
Juju
#3
Membre enregistré
87 messages
Popularité : +4 (4 votes)
Posté le 14 janvier 2019 - 14:19
En fait le problème c'est que mon champ est vide au lieu d'avoir une valeur; Le champ null n'étant pas une des valeurs imposées. Ex : vehicleClass peut recevoir "Car", "Motorbike" mais ne peut pas recevoir "" or le membre VehicleClass s'il n'a pas de valeur affectée apparaît comme égal à vide du coup.
Le mieux ce serait qu'il n'apparaisse pas.
Message modifié, 14 janvier 2019 - 14:29
Signaler
0
0
Johjo
#4
Membre enregistré
96 messages
Popularité : +18 (20 votes)
Posté le 14 janvier 2019 - 17:26
Bonjour,
vous pouvez typer vos champs optionnels en tant que variant.
Ainsi, s'il ne doit pas être utilisé, vous le laissez à null.
Vous n'aurez plus qu'à conditionner sur la valeur null pour utiliser ou non votre champ.
Plus de détail :
http://www.ytreza.org/fr/blog/jour-9-des-booleens-a-3-valeurs
--
Johjo aka Jonathan Laurent
Codez mieux ! Codez plus vite !
Mon blog sur WinDev :
http://www.ytreza.org
Me contacter sur slack (wx-community) :
https://frama.link/BoBD0SY0
Faîtes moi un ping :
http://www.ytreza.org/fr/services/ping-sur-forum
Signaler
0
0
Juju
#5
Membre enregistré
87 messages
Popularité : +4 (4 votes)
Posté le 15 janvier 2019 - 08:42
Effectivement cela fonctionne ça envoie la valeur null ("radio":null ) et c'est pris par le webservice.
// Création de la structure Annonce
st
JSONAnnonce
est une structure
mobileAdId
est un entier
// Numéro d'ordre
mobileSellerId
est un entier
// Identifiant vendeur
category
est une chaîne
// Catégorie voiture
make
est une chaîne
// Marque voiture
price
est une
st
Prix
// Utilisation de la structure prix
firstRegistration
est une chaîne
// Date de 1° immatriculation
...
radio
est un
Variant
FIN
//Création d'une annonce de type structure Annonce
// affectation des propriétés à l'annonce
st
Annonce
:
mobileAdId
=
s
Lp
// Numéro d'ordre
st
Annonce
:
mobileSellerId
=
gs
MobileSellerId
// ID vendeur sur mobile.DE
st
Annonce
:
category
=
T_ANNONCE.AN_SSCATEGORIE
// Sous Catégorie véhicule
st
Annonce
:
vehicleClass
=
T_ANNONCE.AN_CATEGORIE
// Cétégorie véhicule
st
Annonce
:
make
=
T_ANNONCE.AN_MARQUE
// Marque
st
Annonce
:
damageUnrepaired
=
T_ANNONCE.AN_ENDOMMAGE
// Véhicule endommagé (Oui / Non)
st
Annonce
:
firstRegistration
=
DateVersChaîne
(
T_ANNONCE.AN_MISE_CIRCU
,
"YYYYMM"
)
// Date de 1° mise en circu
SI
T_ANNONCE.AN_RADIO
<
>
""
ET
T_ANNONCE.AN_RADIO
<
>
"0"
ALORS
st
Annonce
:
radio
=
"TUNER"
FIN
Merci bien pour l'aide
Signaler
0
0
→ Revenir à WINDEV (précédentes versions)
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