Re: SimplyJson
Publié : lun. 23/mars/2020 13:51
Une personne Novice qui veux apprendre le Json ne serait-ce que par curiosité va s'y cassé les dents.
Bon Alors c'est quoi le Json, comment ça marche concrètement ?, que peut on faire avec ?
Ok, le Json est un format de données (JavaScript Object Notation) permettant de hiérarchiser ces données, plus
simplement, si l'on peut dire grâce à ce format de données, mais faut-il encore savoir l'utiliser pour cela !
Commençons, commençons par ouvrir l'aide de PB et prendre l'exemple de la doc, imbuvable pour un
débutant, car il n'a aucune approche vis à vis de ce nouveau format de données tous simplement.
Bon, ensuite commençons avec:
Resultat = CreateJSON(#JSON) >>> Renvoie une valeur non nulle si la collection JSON a été créée, zéro sinon.
Mais cette « Valeur » c'est quoi ?, rien n'est spécifier à ce sujet dans la doc.
Quand ont test avec le debugueur, ont obtient une valeur étrange du style: 15698524
Donc ont va se contenter d'un: If CreateJSON(#JSON)
Nous savons que #JSON est le numéro du Json, comme pour un Gadget, ici pas de soucis.
Mais le résultat nous restera inconnue pour le moment, nous y viendront plus tard.
Ok, commençons avec: If CreateJSON(1)
Le Json est créé, et ensuite ?
« A la création, les données contiennent une valeur JSON de type #PB_JSON_Null.
La fonction JSONValue() peut être utilisée pour changer ce type. »
Ici ont est troublé, ont comprend que le Json ne contient rien.
Puis, JSONValue(), qu'est ce que c'est que ça ?
Changer sont type ?
JSONValue() = « Renvoie la valeur des données #JSON spécifiés. »
Ici encore perdus, encore une « Valeur » ?
« Valeur de retour
La valeur JSON.
Le résultat n'est jamais nul pour un ensemble de données #JSON valides. »
Bon, ici ont passera, pour y revenir plus tard, « Valeur » trop de « Valeur » à n'y rien comprendre...
Poursuivons,
ObjetPersonne = SetJSONObject(JSONValue(0))
Qu'est ce que c'est que ce charabia ?
ObjetPersonne c'est quoi ?
SetJSONObject() = « Change le type de la valeur JSON en #PB_JSON_Object...»
Valeur de retour
Renvoie la valeur objet ou zéro sinon.
Encore une « Valeur » ?
Mais au faite, c'est quoi ses « Valeur » ???
Quand ont débogue les résultat nous avons encore ses nombre étrange du style: 1154631
Quand au reste, nous perdront le débutant, qui pourra éventuellement lâcher l'affaire.
L'aide de PB n'as pas vocation à être un Tuto pour les Débutant, trop flou par moment...
Sinon il va essayer de comprendre et de « bidouillé »
Mais au premier abord il ne comprends pas se qu'est: Resultat = CreateJSON(#JSON)
« Resultat » c'est quoi ?, un numéro d'identification ?
Ah non, le numéro d'identification c'est le #Json, ok mais alors ?
Bha ont ne sais pas, (En faite c'est un nombre, un emplacement dans la mémoire.)
Ok et concrètement ça sert a quoi ?
Pas grand chose pour le moment, mais c'est bon à savoir tout de même !
Les « Valeur » sont des numéro d'emplacement dans la mémoire, avec un peu de connaissance, ont fini par le comprendre.
Oui bon et alors ça nous avance à quoi ?
Et puis ses enchevêtrement de commande du style: SetJSONInteger(AddJSONMember(ValeurObjet, "x"), 10)
Bha bha bha, qu'est ce que c'est que ça encore ?!
AddJSONMember() = "Renvoie l'adresse du membre ajouté."
Ah, ici c'est pas une "Valeur" mais une adresse !
Bon "Valeur" ou Adresse ?
En faite c'est "Adresse" mais "Adresse" vers un emplacement mémoire qui lui contient la "Valeur" !
Le débutant va bien s'amuser quand il va vouloir essayer de créer des données imbriqué !
Tenez, demandez à un débutant de faire ceci:
Il n'y arrivera peut être pas !
Voici la méthode:
C'est un bien gros chantier, tous ça pour ça ?
Et il n'y a pas grand chose ici !
Avec toute cette cacophonies, j'ai décider de rendre ça beaucoup plus simple.
Voici un exemple:
Voici l'interet de ce projet, rendre tous ça très simple !
Bon Alors c'est quoi le Json, comment ça marche concrètement ?, que peut on faire avec ?
Ok, le Json est un format de données (JavaScript Object Notation) permettant de hiérarchiser ces données, plus
simplement, si l'on peut dire grâce à ce format de données, mais faut-il encore savoir l'utiliser pour cela !
Commençons, commençons par ouvrir l'aide de PB et prendre l'exemple de la doc, imbuvable pour un
débutant, car il n'a aucune approche vis à vis de ce nouveau format de données tous simplement.
Bon, ensuite commençons avec:
Resultat = CreateJSON(#JSON) >>> Renvoie une valeur non nulle si la collection JSON a été créée, zéro sinon.
Mais cette « Valeur » c'est quoi ?, rien n'est spécifier à ce sujet dans la doc.
Quand ont test avec le debugueur, ont obtient une valeur étrange du style: 15698524
Donc ont va se contenter d'un: If CreateJSON(#JSON)
Nous savons que #JSON est le numéro du Json, comme pour un Gadget, ici pas de soucis.
Mais le résultat nous restera inconnue pour le moment, nous y viendront plus tard.
Ok, commençons avec: If CreateJSON(1)
Le Json est créé, et ensuite ?
« A la création, les données contiennent une valeur JSON de type #PB_JSON_Null.
La fonction JSONValue() peut être utilisée pour changer ce type. »
Ici ont est troublé, ont comprend que le Json ne contient rien.
Puis, JSONValue(), qu'est ce que c'est que ça ?
Changer sont type ?
JSONValue() = « Renvoie la valeur des données #JSON spécifiés. »
Ici encore perdus, encore une « Valeur » ?
« Valeur de retour
La valeur JSON.
Le résultat n'est jamais nul pour un ensemble de données #JSON valides. »
Bon, ici ont passera, pour y revenir plus tard, « Valeur » trop de « Valeur » à n'y rien comprendre...
Poursuivons,
ObjetPersonne = SetJSONObject(JSONValue(0))
Qu'est ce que c'est que ce charabia ?
ObjetPersonne c'est quoi ?
SetJSONObject() = « Change le type de la valeur JSON en #PB_JSON_Object...»
Valeur de retour
Renvoie la valeur objet ou zéro sinon.
Encore une « Valeur » ?
Mais au faite, c'est quoi ses « Valeur » ???
Quand ont débogue les résultat nous avons encore ses nombre étrange du style: 1154631
Quand au reste, nous perdront le débutant, qui pourra éventuellement lâcher l'affaire.
L'aide de PB n'as pas vocation à être un Tuto pour les Débutant, trop flou par moment...
Code : Tout sélectionner
If CreateJSON(0)
ValeurObjet = SetJSONObject(JSONValue(0))
SetJSONInteger(AddJSONMember(ValeurObjet, "x"), 10)
SetJSONInteger(AddJSONMember(ValeurObjet, "y"), 20)
SetJSONInteger(AddJSONMember(ValeurObjet, "z"), 30)
Debug ComposeJSON(0, #PB_JSON_PrettyPrint)
EndIf
; Resultat : {
; "x": 10,
; "y": 20,
; "z": 30
; }Mais au premier abord il ne comprends pas se qu'est: Resultat = CreateJSON(#JSON)
« Resultat » c'est quoi ?, un numéro d'identification ?
Ah non, le numéro d'identification c'est le #Json, ok mais alors ?
Bha ont ne sais pas, (En faite c'est un nombre, un emplacement dans la mémoire.)
Ok et concrètement ça sert a quoi ?
Pas grand chose pour le moment, mais c'est bon à savoir tout de même !
Les « Valeur » sont des numéro d'emplacement dans la mémoire, avec un peu de connaissance, ont fini par le comprendre.
Oui bon et alors ça nous avance à quoi ?
Et puis ses enchevêtrement de commande du style: SetJSONInteger(AddJSONMember(ValeurObjet, "x"), 10)
Bha bha bha, qu'est ce que c'est que ça encore ?!
AddJSONMember() = "Renvoie l'adresse du membre ajouté."
Ah, ici c'est pas une "Valeur" mais une adresse !
Bon "Valeur" ou Adresse ?
En faite c'est "Adresse" mais "Adresse" vers un emplacement mémoire qui lui contient la "Valeur" !
Le débutant va bien s'amuser quand il va vouloir essayer de créer des données imbriqué !
Tenez, demandez à un débutant de faire ceci:
Code : Tout sélectionner
{
"Jardin" : null,
"Famille": {
"Liens" : {
"Luck - Alice": 88,
"Alice - Luck": 85
},
"Membres": {
"Enfants": null,
"Parents": {
"Alice": null,
"Luck" : null
}
}
},
"Maison" : null
}Voici la méthode:
Code : Tout sélectionner
If CreateJSON(0)
MyJson.i = SetJSONObject(JSONValue(0))
Famille.i = AddJSONMember(MyJson.i, "Famille")
FamilleObjet.i = SetJSONObject(Famille.i)
Membres.i = AddJSONMember(FamilleObjet.i, "Membres")
MembresObjet.i = SetJSONObject(Membres.i)
Parents.i = AddJSONMember(MembresObjet.i, "Parents")
ParentsObjet.i = SetJSONObject(Parents.i)
Papa.i = AddJSONMember(ParentsObjet.i, "Luck")
Maman.i = AddJSONMember(ParentsObjet.i, "Alice")
Enfants.i = AddJSONMember(MembresObjet.i, "Enfants")
MembresLiens.i = AddJSONMember(FamilleObjet.i, "Liens")
MembresLiensObjet.i = SetJSONObject(MembresLiens.i)
LiensLuckAlice.i = AddJSONMember(MembresLiensObjet.i, "Luck - Alice")
ValeurLiensLuckAlice.i = SetJSONInteger(LiensLuckAlice.i, 88)
LiensAliceLuck.i = AddJSONMember(MembresLiensObjet.i, "Alice - Luck")
ValeurLiensAliceLuck.i = SetJSONInteger(LiensAliceLuck.i, 85)
Maison.i = AddJSONMember(MyJson.i, "Maison")
Jardin.i = AddJSONMember(MyJson.i, "Jardin")
Debug ComposeJSON(0, #PB_JSON_PrettyPrint)
EndIf
Et il n'y a pas grand chose ici !
Avec toute cette cacophonies, j'ai décider de rendre ça beaucoup plus simple.
Voici un exemple:
Code : Tout sélectionner
CreateSJson(1)
CreateSJsonPatch(1, "Jardin")
CreateSJsonPatch(1, "Famille\Liens\Luck - Alice")
CreateSJsonPatch(1, "Famille\Liens\Alice - Luck")
CreateSJsonPatch(1, "Famille\Membres\Parent\Alice")
CreateSJsonPatch(1, "Famille\Membres\Parent\Luck")
CreateSJsonPatch(1, "Famille\Membres\Parent\Enfants")
CreateSJsonPatch(1, "Maison")
SetSJsonPatchString(1, "Famille\Liens\Luck - Alice", "88")
SetSJsonPatchString(1, "Famille\Liens\Alice - Luck", "85")