La réponse à ta question dépend totalement de la structure de ton fichier json.
Telle que c'est construit, tu peux faire comme çà :
Code : Tout sélectionner
Procedure.s getSubItem(id, name.s, index.l, subname.s)
Protected value.s
Protected object.i = JSONValue(id)
If object
object = GetJSONMember(object, name)
If object
object = GetJSONElement(object, index)
If object
object = GetJSONMember(object, subname)
If object
value = GetJSONString(object)
EndIf
EndIf
EndIf
EndIf
ProcedureReturn value
EndProcedure
json = LoadJSON(#PB_Any, "test.json")
If json
Debug getSubItem(json, "index3", 0, "sousIndexA")
Debug getSubItem(json, "index3", 1, "sousIndexA")
Debug getSubItem(json, "index3", 0, "sousIndexB")
Debug getSubItem(json, "index3", 1, "sousIndexB")
FreeJSON(json)
EndIf
Et oui, les balises [ ] sont utilisées pour définir un tableau, d'où l'argument "index" dans la fonction getSubItem(), car dans ce cas ce n'est accessible que via un index de tableau (et non une clef, dans ton cas).
Ceci dit, il y a probablement mieux à faire selon le contexte d'utilisation.