DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des chaînes
  • Encodage
  • Contenu du variant
  • Tester NULL sur une valeur
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
Autres
Procédures stockées
Convertit une chaîne au format JSON en une variable de type Variant.
sJZon est une chaîne ANSI = [
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
]

soit jz = JSONVersVariant(sJZon)
Syntaxe
<Résultat> = JSONVersVariant(<Données JSON>)
<Résultat> : Variant
Nom de la variable de type Variant contenant le résultat de la conversion.
<Données JSON> : Chaîne de caractères ANSI encodé en ASCII 7 bits + encodage JSON ou UTF-8
Chaîne de caractères contenant les données au format JSON.
Remarques

Encodage

L'encodage utilisé correspond au standard JSON :
  • utilisation d'un encodage en ASCII 7 bits pour les 128 premiers caractères, les caractères non accentués,
  • utilisation d'un encodage JSON des autres caractères : "\u" suivi du code du caractère en hexadécimal sur 4. Exemple : pour "é" (code ASCII 233, code hexadécimal E9), l'encodage correspond à "\u00E9".

Contenu du variant

Le contenu du variant dépend du JSON manipulé. Il peut correspondre à :
  • la valeur Null,
  • un type simple : entier, chaîne de caractères, booléen, ...
  • un tableau,
  • un objet complexe (type MembreVariant, correspondant à un tableau de membres dont chaque membre est un variant).

Tester NULL sur une valeur

La valeur "NULL" est souvent utilisée en JSON.
Pour vérifier la valeur "NULL" d'un variant, il est possible :
  • d'utiliser la propriété Valeur du variant. Par exemple :
    v est un Variant = JSONVersVariant("{""m"":null}")
    SI v.m..Valeur = Null ALORS Trace("NULL")
  • de tester directement la valeur NULL. Par exemple :
    v est un Variant = JSONVersVariant("{""m"":null}")
    SI v.m = Null ALORS Trace("NULL")
Composante : wd300xml.dll
Version minimum requise
  • Version 19
Commentaires
Navegar nos dados de um json
js is JSON
FOR i = 1 _TO_ js..Member..Count
js..Member[i]..Name
END
Boller
23 oct. 2023
exemplo jsontovariant
https://windevdesenvolvimento.blogspot.com/2021/05/dicas-3325-windev-webdev-mobile.html
https://youtu.be/MQ7SrcjV33E
EDT_retorno=""
S_url is string="https://economia.awesomeapi.com.br/json/last/USD-BRL"
IF HTTPRequest(S_url) THEN
EDT_retorno=UTF8ToAnsi(HTTPGetResult())
let json_dados=JSONToVariant(EDT_retorno)
FOR EACH json_linha OF json_dados..Member
FOR EACH json_linha_Detalhe OF json_linha
IF json_linha_Detalhe..Name="high" THEN
EDT_dolar=json_linha_Detalhe..Value
END
END
END
END
amarildo
11 mai 2021
Video Json
bom dia
https://youtu.be/WkltQUt_Bak
https://windevdesenvolvimento.blogspot.com/2019/07/dicas-2204-windev-webdev-mobile-json-6.html
// Youtube Amarildo Matos
s_json_dados is string=fLoadText(EDT_ARQUIVO_JSON)
//ESSA LINHA DIFERENTE
let variavel_json=JSONToVariant(s_json_dados)
//ESSA LINHA DIFERENTE
TableDeleteAll(TABLE_JSON)
FOR nNCONTADOR=1 TO variavel_json..Count
nNOCORRENCIA is int=TableAddLine(TABLE_JSON)
TABLE_JSON[nNOCORRENCIA].COL_SHORT_DESCRIPTION=variavel_json[nNCONTADOR].short_description
TABLE_JSON[nNOCORRENCIA].COL_PRICE=variavel_json[nNCONTADOR].price
TABLE_JSON[nNOCORRENCIA].COL_STOCK_QUANTITY=variavel_json[nNCONTADOR].stock_quantity
END

amarildo
18 juil. 2019
Video JSONToVariant
https://youtu.be/ZC3G1PrDN9g

https://windevdesenvolvimento.blogspot.com/2019/05/dicas-2107-windev-webdev-mobile-json-4.html

// BTN_LER_SJON
TableDeleteAll(TABLE_CLIENTE)
vTeste is Variant
vTeste=JSONToVariant(EDT_retorno)
FOR EACH indice OF vTeste
TableAddLine(TABLE_CLIENTE,indice.clienteid,indice.nome)
END

amarildo
13 mai 2019
Utilisation des dateheures
le format d'un dateheure est serialisé selon la norme ISO 8601 :

"mondateheure":"2018-03-02T17:50:05.373"

Pour récupérer le contenu dans un dateheure, il faut utiliser ChaineVersDate() :

d est un DateHeure
v est un Variant = JSONVersVariant(xxx)
d=ChaîneVersDate(v.mondateheure,"AAAA-MM-JJTHH:mm:SS.CCC") // iso 8601
David
05 mar. 2018

Dernière modification : 19/09/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale