Page 1 sur 1
JSON et Array
Publié : sam. 30/août/2014 11:36
par falsam
En utilisant une des fonctionnalité de la bibliothéque JSON, ce code permet de retourner un tableau de sous-chaînes de caractères.
Code : Tout sélectionner
Enumeration
#JSON
EndEnumeration
ParseJSON(#JSON, "[2, 4, 5, 0, 9]")
Dim MyArray(#JSON)
ExtractJSONArray(JSONValue(#JSON), MyArray())
For i=0 To ArraySize(MyArray())
Debug MyArray(i)
Next
Par contre ça ne fonctionne plus si au lieu de comporter des nombres, cette chaîne comporte des valeures alphanumérique.
Code : Tout sélectionner
Enumeration
#JSON
EndEnumeration
ParseJSON(#JSON, "[Peche, Pomme, Poire, Abricot, Citron]")
Dim MyArray(#JSON)
ExtractJSONArray(JSONValue(#JSON), MyArray())
For i=0 To ArraySize(MyArray())
Debug MyArray(i)
Next
Re: JSON et Array
Publié : sam. 30/août/2014 16:32
par PAPIPP
Bonjour Falsam
Et pourtant voici un exemple qui fonctionne.
ComposeJSON(0) est une structure de type string
ces deux macros peuvent servir pour le debud _s(...) avec des doubles quotes pour chaque élément
Macro _q_t_
"
EndMacro
Macro _s (__S)
_q_t_#__S#=_q_t_+__S+" "
EndMacro
Code : Tout sélectionner
If CreateJSON(0)
ValeurTableau = SetJSONArray(JSONValue(0))
SetJSONString(AddJSONElement(ValeurTableau), "hello")
SetJSONString(AddJSONElement(ValeurTableau), "le Monde")
SetJSONString(AddJSONElement(ValeurTableau), "le Monde2")
; Debug _s(ComposeJSON(0))
Debug ComposeJSON(0)
EndIf
Debug "**** Maintenant en tableau ****"
Enumeration
#JSON
EndEnumeration
ParseJSON(#JSON,ComposeJSON(0))
Dim MyArray.s(#JSON)
ExtractJSONArray(JSONValue(#JSON), MyArray())
For i=0 To ArraySize(MyArray())
Debug MyArray(i)
Next
Autre exemple pas facile à coder le string$
Code : Tout sélectionner
Enumeration
#JSON
EndEnumeration
string$="["+Chr(34)+"Peche"+Chr(34)+","+Chr(34)+"Pomme"+Chr(34)+","+Chr(34)+"Poire"+Chr(34)+","+Chr(34)+"Abricot"+Chr(34)+","+Chr(34)+"Citron"+Chr(34)+"]"
Debug string$
ParseJSON(#JSON, string$)
Dim MyArray.s(#JSON)
ExtractJSONArray(JSONValue(#JSON), MyArray())
For i=0 To ArraySize(MyArray())
Debug MyArray(i)
Next
A+
Re: JSON et Array
Publié : sam. 30/août/2014 16:46
par falsam
Oui de cette maniére ça fonctionne mais je touvais plus séduisant d'envoyer une chaine de cette façon pour créer le tableau
ça fonctionne avec des valeurs numériques mais pas avec des valeurs alpha-numériques.
L'aide dit
Parse JSON data from a string. The JSONValue() function can be used to access the contained JSON value(s) after parsing
S'agissant d'un string, tu avoueras que c'est dommage de ne pas pouvoir passer ...... des strings

Re: JSON et Array
Publié : sam. 30/août/2014 16:57
par PAPIPP
@Falsam
on peut comme cela mais le string$ n'est pas facile à coder
Enumeration
#JSON
EndEnumeration
string$="["+Chr(34)+"Peche"+Chr(34)+","+Chr(34)+"Pomme"+Chr(34)+","+Chr(34)+"Poire"+Chr(34)+","+Chr(34)+"Abricot"+Chr(34)+","+Chr(34)+"Citron"+Chr(34)+"]"
Debug string$
ParseJSON(#JSON, string$)
Dim MyArray.s(#JSON)
ExtractJSONArray(JSONValue(#JSON), MyArray())
For i=0 To ArraySize(MyArray())
Debug MyArray(i)
Next
Re: JSON et Array
Publié : sam. 30/août/2014 17:02
par falsam
C'est une solution certes moins sexy, mais ça fonctionne. Merci PAPIPP pour cette réponse
En tout cas cette nouvelle fonctionnalité de Pure Basic est génial.