Bonjour,

Dev en Delphi 10.4 pour Android: J'essaie de lire un JSON récupéré dans RESTRequest incluant plusieurs éléments dont un tableau.

J'arrive à accéder à toutes les données de manière individuelle y compris les valeurs de la table mais quand je veux traiter le tableau comme un tableau, j'ai une erreur "violation d'accés mémoire..."


Le code qui fonctionne:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
JsonValue := TJSonObject.ParseJSONValue(JSONresponse_str);
 
//Je récupère une valeur 'doc_id' qui est un élément de 'header', lui-même élément de 'v_data'
str:=JsonValue.GetValue<string>('results[0].v_data.header.doc_id');  //JSON mgt  OK OK OK
 
//Je récupère une valeur 'doc_line_id' qui est un élément du 1er enregistrement du tableau 'lines' dans 'v_data'
str:=JsonValue.GetValue<string>('results[0].v_data.lines[0].doc_line_id');  //JSON mgt  OK OK OK
Par contre, le moindre accès au tableau se termine par une "violation d'accès".

J'ai essayé plusieurs approches du code comme par exemple

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
  LJson :=  TJSonObject.ParseJSONValue(JSONresponse_str) as TJSONObject;
  LValues := LJson.Values['lines'] as TJSONArray;
 
  str:=IntToStr(LValues.Count);
Cela va planter sur le "LValues.Count"

Est-ce que qqn voit ce que je fais faux?

Merci pour votre avis