Recent

Author Topic: (SOLVED) json problem  (Read 2070 times)

xinyiman

  • Hero Member
  • *****
  • Posts: 2259
    • Lazarus and Free Pascal italian community
(SOLVED) json problem
« on: January 19, 2017, 01:55:24 pm »
I do not understand what is wrong. I would like to read the contents of the record one, in this case the description field. But it faults. The recordcount the right law. The rest do not. What am I doing wrong?

I followed this link: http://freepascal.org/docs-html/current/fcl/fpjson/index.html

Code: Pascal  [Select][+][-]
  1.  
  2. var
  3. J, r, msg: TJSONData;
  4. app:string;
  5. I: integer;
  6. begin
  7.  
  8.  
  9.   app:=trim('{"RECORDCOUNT":7},{"RECORDSET":[{"IDTIPOANAGRAFICA":"1","DESCRIZIONE":"Cliente"},{"IDTIPOANAGRAFICA":"2","DESCRIZIONE":"Tecnico"},{"IDTIPOANAGRAFICA":"3","DESCRIZIONE":"Azienda"},{"IDTIPOANAGRAFICA":"4","DESCRIZIONE":"Fornitore"},{"IDTIPOANAGRAFICA":"5","DESCRIZIONE":"Vettore"},{"IDTIPOANAGRAFICA":"6","DESCRIZIONE":"Agente"},{"IDTIPOANAGRAFICA":"7","DESCRIZIONE":"Produttore"}]}');
  10.  
  11.   Memo1.Text:=app;
  12.   try
  13.     // Parse JSON Data to TJSONData
  14.     J:=GetJSON(app);
  15.     Memo2.Text:=J.FindPath('RECORDCOUNT').AsString;
  16.     Memo2.Append(J.FindPath('RECORDSET[1].DESCRIZIONE').AsString);
  17.  
  18.  
  19.   except
  20.     on E: Exception do ShowMessage('Error finding path!');
  21.  
  22.   end;
  23. end;  
  24.  
« Last Edit: January 19, 2017, 02:52:52 pm by xinyiman »
Win10, Ubuntu and Mac
Lazarus: 2.1.0
FPC: 3.3.1

rvk

  • Hero Member
  • *****
  • Posts: 6910
Re: json problem
« Reply #1 on: January 19, 2017, 02:40:48 pm »
Your code works for this Json:

Code: Pascal  [Select][+][-]
  1.   app := trim('{"RECORDCOUNT":7, "RECORDSET":[{"IDTIPOANAGRAFICA_0":"1","DESCRIZIONE":"Cliente"},{"IDTIPOANAGRAFICA_1":"2","DESCRIZIONE":"Tecnico"},{"IDTIPOANAGRAFICA_2":"3","DESCRIZIONE":"Azienda"},{"IDTIPOANAGRAFICA_3":"4","DESCRIZIONE":"Fornitore"},{"IDTIPOANAGRAFICA_4":"5","DESCRIZIONE":"Vettore"},{"IDTIPOANAGRAFICA_5":"6","DESCRIZIONE":"Agente"},{"IDTIPOANAGRAFICA_6":"7","DESCRIZIONE":"Produttore"}]}');
So RECORDSET is part of the "base".

Code: [Select]
{
  "RECORDCOUNT":7,
  "RECORDSET": [
    {
      "IDTIPOANAGRAFICA_0":"1",
      "DESCRIZIONE":"Cliente"
    },{
      "IDTIPOANAGRAFICA_1":"2",
      "DESCRIZIONE":"Tecnico"
    },...
See. Your JSon is this:
Code: [Select]
{
  "RECORDCOUNT":7
},
{
  "RECORDSET": [
    {
      "IDTIPOANAGRAFICA_0":"1",
      "DESCRIZIONE":"Cliente"
    },{
      "IDTIPOANAGRAFICA_1":"2",
      "DESCRIZIONE":"Tecnico"
    },...
So RECORDSET isn't part if the first base where RECORDCOUNT is in.

Who made the Json?

xinyiman

  • Hero Member
  • *****
  • Posts: 2259
    • Lazarus and Free Pascal italian community
Re: json problem
« Reply #2 on: January 19, 2017, 02:52:39 pm »
Thank you :)
Win10, Ubuntu and Mac
Lazarus: 2.1.0
FPC: 3.3.1

 

TinyPortal © 2005-2018