C'est compliqué parce que tu ne sais pas l’utiliser correctement peut être ?Shadow a écrit :Le Json c'est la mouise à utiliser, ya des tonnes d'adresses mémoire à gérer, c'est vraiment le bordel
Question JSON
- falsam
- Messages : 7334
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Question JSON
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Question JSON
Non je Json c'est pas simple à utiliser, j'ai dis pourquoi, bha je sais un peu l'utiliser mais pour le peu que j'en sais, c'est vraiment trop casse pieds, je veux faire plus simple.falsam a écrit :C'est compliqué parce que tu ne sais pas l’utiliser correctement peut être ?Shadow a écrit :Le Json c'est la mouise à utiliser, ya des tonnes d'adresses mémoire à gérer, c'est vraiment le bordel
Le dernier code que tu présentes devient hors sujet. Il y a une gestion des maps mais plus de JSON. Je suppose que tu sauvegarderas la map au format JSON
Non rien de hors sujet en faite, oui, je sauvegarderais la map au format JSON, un truc comme ça oui.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Re: Question JSON
Bon voici la suite, petit à petit jy arrive:
Pas encore d'enregistrement ni chargement dans un vraie Json mais ça va peut être venir.
Code : Tout sélectionner
Structure JsonPatchData
Value.s
EndStructure
Structure JsonPatch
Map Member.JsonPatchData() ; Emplacement avec une clef au coeur du dossier (Patch).
EndStructure
Structure Json
Map Patch.JsonPatch() ; Map qui sert pour le Patch (Adresse) des données.
EndStructure
Global NewMap SimplyJson.Json()
Procedure SimplyJsonEnumName(List JsonName.s())
ForEach SimplyJson.Json()
AddElement(JsonName.s())
JsonName.s() = MapKey(SimplyJson.Json())
Next
EndProcedure
Procedure.i SimplyJsonCount(JsonName.s)
If FindMapElement(SimplyJson.Json(), JsonName.s)
ProcedureReturn MapSize(SimplyJson.Json())
Else
ProcedureReturn 0
EndIf
EndProcedure
Procedure.b SimplyJsonEnuPatch(JsonName.s, List JsonPath.s())
If FindMapElement(SimplyJson.Json(), JsonName.s)
ForEach SimplyJson.Json(JsonName.s)\Patch()
AddElement(JsonPath.s())
JsonPath.s() = MapKey(SimplyJson.Json(JsonName.s)\Patch())
Next
ProcedureReturn 1
Else
ProcedureReturn 0
EndIf
EndProcedure
Procedure.i SimplyJsonCountPatch(JsonName.s)
If FindMapElement(SimplyJson.Json(), JsonName.s)
ProcedureReturn MapSize(SimplyJson.Json()\Patch())
Else
ProcedureReturn 0
EndIf
EndProcedure
Procedure.b SimplyJsonEnumPatchMember(JsonName.s, Patch.s, List JsonPathMember.s())
If FindMapElement(SimplyJson.Json(), JsonName.s)
If FindMapElement(SimplyJson.Json()\Patch(), Patch.s)
ForEach SimplyJson.Json(JsonName.s)\Patch()\Member()
AddElement(JsonPathMember.s())
JsonPathMember.s() = MapKey(SimplyJson.Json(JsonName.s)\Patch()\Member())
Next
ProcedureReturn 1
Else
ProcedureReturn 0
EndIf
Else
ProcedureReturn 0
EndIf
EndProcedure
Procedure.i SimplyJsonCountPatchMember(JsonName.s, Patch.s)
If FindMapElement(SimplyJson.Json(), JsonName.s)
If FindMapElement(SimplyJson.Json()\Patch(), Patch.s)
ProcedureReturn MapSize(SimplyJson.Json()\Patch()\Member())
Else
ProcedureReturn 0
EndIf
Else
ProcedureReturn 0
EndIf
EndProcedure
; Le programme Principal ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Global SimplyJsonName.s = "MyJson 1" ; Nom de notre Json.
; SimplyJson.Json("Le Nom du Json")\Patch("Adresse du Membre du Json")\Member("Nom du Membre du Json")\Value = "Valeur Alpha-numérique du Membre du Json"
SimplyJson.Json(SimplyJsonName.s)\Patch("Vehicules\Aérien")\Member("Montgolfière")\Value = "Ballon d'air chaud"
SimplyJson.Json(SimplyJsonName.s)\Patch("Vehicules\Aérien")\Member("Dirigeable")\Value = "Ballon d'hélium"
SimplyJson.Json(SimplyJsonName.s)\Patch("Vehicules\Aérien")\Member("DeltaPlane")\Value = "Aile sans hélice"
SimplyJson.Json(SimplyJsonName.s)\Patch("Vehicules\Aérien")\Member("ULM")\Value = "Ailes à hélice"
SimplyJson.Json(SimplyJsonName.s)\Patch("Vehicules\Aérien")\Member("Avion")\Value = "Ailes à hélice"
SimplyJson.Json(SimplyJsonName.s)\Patch("Vehicules\Aérien")\Member("Hélicopter")\Value = "Ailes pivotante"
SimplyJson.Json(SimplyJsonName.s)\Patch("Vehicules\Terrestre")\Member("Voiture")\Value = "Machine motorisé à 4 roues"
SimplyJson.Json(SimplyJsonName.s)\Patch("Vehicules\Terrestre")\Member("Moto")\Value = "Machine motorisé à 2 roues"
SimplyJson.Json(SimplyJsonName.s)\Patch("Vehicules\Terrestre")\Member("Vélo")\Value = "Machine à propulsion humaine"
SimplyJson.Json(SimplyJsonName.s)\Patch("Vehicules\Maritime")\Member("Zodiac ")\Value = "Coque semie rigide motorisé"
SimplyJson.Json(SimplyJsonName.s)\Patch("Vehicules\Maritime")\Member("Bateau")\Value = "Coque Rigide motorisé"
SimplyJson.Json(SimplyJsonName.s)\Patch("Vehicules\Maritime")\Member("Péniche")\Value = "Coque de transport fluvial"
; Enumère tous les Noms des Json contenue dans le SimplyJson:
NewList SimplyJsonName.s() ; Création d'une liste pour y mettre tous les noms des Json.
SimplyJsonEnumName(SimplyJsonName.s()) ; Enumère tous les Noms que contient le SimplyJson et l'enregistre dans notre liste SimplyJsonName.s().
; Enumère et affiche tous les Nom que contient notre liste: SimplyJsonName.s().
ForEach SimplyJsonName.s()
Debug "Nom du Json: " + Chr(34) + SimplyJsonName.s() + Chr(34)
Next
Debug "--------------------------------------------------------------------------------------------------------"
; Enumère toutes les adresses du Json contenue dans le SimplyJson:
NewList SimplyJsonPatch.s() ; Création d'une liste pour y mettre toutes les adresses du Json.
SimplyJsonEnuPatch(SimplyJsonName.s, SimplyJsonPatch.s()) ; Enumère toutes les adresses que contient le SimplyJson et l'enregistre dans notre liste SimplyJsonPatch.s().
; Enumère et affiche tous les Nom que contient notre liste: SimplyJsonPatch.s().
ForEach SimplyJsonPatch.s()
Debug "Adresses du Membre du Json: " + Chr(34) + SimplyJsonPatch.s() + Chr(34)
Next
Debug "--------------------------------------------------------------------------------------------------------"
; Enumère tous les Noms des Membre du Json contenue dans le SimplyJson:
NewList SimplyJsonPatchPatchMember.s() ; Création d'une liste pour y mettre tous les Noms des Membre du Json.
SimplyJsonEnumPatchMember(SimplyJsonName.s, "Vehicules\Aérien", SimplyJsonPatchPatchMember.s()) ; Enumère tous les Noms des Membre que contient le SimplyJson et l'enregistre dans notre liste SimplyJsonPatch.s().
; Enumère et affiche tous les Noms des Membre que contient notre liste: SimplyJsonPatchPatchMember.s().
ForEach SimplyJsonPatchPatchMember.s()
Debug "Nom du Membre du Json: " + Chr(34) + SimplyJsonPatchPatchMember.s() + Chr(34)
Next
Debug "--------------------------------------------------------------------------------------------------------"
Debug "--------------------------------------------------------------------------------------------------------"
; ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
NewList SimplyJsonName.s() ; Création d'une liste pour y mettre tous les noms des Json.
NewList SimplyJsonPatch.s() ; Création d'une liste pour y mettre toutes les adresses du Json.
NewList SimplyJsonPatchPatchMember.s() ; Création d'une liste pour y mettre tous les Noms des Membre du Json.
SimplyJsonEnumName(SimplyJsonName.s()) ; Enumère tous les Noms que contient le SimplyJson et l'enregistre dans notre liste SimplyJsonName.s().
; Enumère et affiche tous les Nom que contient notre liste: SimplyJsonName.s().
ForEach SimplyJsonName.s()
Debug "Nom du Json: " + Chr(34) + SimplyJsonName.s() + Chr(34)
SimplyJsonEnuPatch(SimplyJsonName.s(), SimplyJsonPatch.s()) ; Enumère toutes les adresses que contient le SimplyJson et l'enregistre dans notre liste SimplyJsonPatch.s().
; Enumère et affiche tous les Nom que contient notre liste: SimplyJsonPatch.s().
ForEach SimplyJsonPatch.s()
Debug ">>> Adresses du Membre du Json: " + Chr(34) + SimplyJsonPatch.s() + Chr(34)
SimplyJsonEnumPatchMember(SimplyJsonName.s(), SimplyJsonPatch.s(), SimplyJsonPatchPatchMember.s()) ; Enumère tous les Noms des Membre que contient le SimplyJson et l'enregistre dans notre liste SimplyJsonPatch.s().
; Enumère et affiche tous les Noms des Membre que contient notre liste: SimplyJsonPatchPatchMember.s().
ForEach SimplyJsonPatchPatchMember.s()
Debug ">>>>>> Nom du Membre du Json: " + Chr(34) + SimplyJsonPatchPatchMember.s() + Chr(34)
Next
ClearList(SimplyJsonPatchPatchMember.s())
Next
ClearList(SimplyJsonPatch.s())
Next
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Re: Question JSON
Dites moi, ExamineJSONMembers() examine tous les membres du Json en entier ou juste les membres de l'objet ?
Je coince un peu pour la suite... dans l'aide rien d'écris là dessus.
Imaginons que j'ai ce chemin-ci:
"Famille\Membres\Parents\Enfants"
"Famille" contient un dossier "Membres".
"Membres" contient un dossier "Parents".
"Parents" contient un dossier "Enfants".
Le Json ressemblerait à ceci:
Quel méthode dois-je utiliser pour lister le Json et savoir si ce chemin existe ?: "Famille\Membres\Parents\Enfants"
C'est là ou ça va être compliqué ^^
Il faut que j'énumère tous les membres de chaque objets, bref...
C'est ça ?
Je coince un peu pour la suite... dans l'aide rien d'écris là dessus.
Imaginons que j'ai ce chemin-ci:
"Famille\Membres\Parents\Enfants"
"Famille" contient un dossier "Membres".
"Membres" contient un dossier "Parents".
"Parents" contient un dossier "Enfants".
Le Json ressemblerait à ceci:
Code : Tout sélectionner
{
"Famille": {
"Membres": {
"Enfants": null,
"Parents": {
"Alice": null,
"Luck" : null
}
}
}
}C'est là ou ça va être compliqué ^^
Il faut que j'énumère tous les membres de chaque objets, bref...
C'est ça ?
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.