#1 2025-06-14 15:10:23

testgary
Member
Registered: 2025-02-06
Posts: 27

TJsonClient

I'm not sure if what I wrote is correct. DataRec can't get the data.

type
  TDataRec = packed record
    userId: integer;
    id:     integer;
    title:  RawUtf8;
    completed: boolean;
  end;
  PDataRec = ^TDataRec;
  TDataRecArr = array of TDataRec;

procedure TestJsonClient;

implementation

procedure TestJsonClient;
var
  JsonClient: TJsonClient;
  DataRecArr: TDataRecArr;
  DataRec:    TDataRec;
begin
  FillChar(DataRecArr, SizeOf(DataRecArr), 0);
  JsonClient := TJsonClient.Create('https://jsonplaceholder.typicode.com');
  JsonClient.Request('GET', 'todos/%', [1], [], [], DataRec, TypeInfo(TDataRec), nil);
end;

The following is the returned data.

https://jsonplaceholder.typicode.com/todos/1

{
  "userId": 1,
  "id": 1,
  "title": "delectus aut autem",
  "completed": false
}

Offline

#2 2025-06-14 16:43:08

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 15,069
Website

Re: TJsonClient

On which compiler?

Online

#3 2025-06-14 17:12:31

testgary
Member
Registered: 2025-02-06
Posts: 27

Re: TJsonClient

ab wrote:

On which compiler?

lazarus 3.0
FPC 3.2.2
WIN64

Offline

#4 2025-06-14 17:18:00

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 15,069
Website

Re: TJsonClient

There is not enough RTTI on FPC 3.2.2 to define the record fields.

You need to describe your record with a text definition in your code.
This is what is done for example with our OpenAPI generator.

Online

#5 2025-06-15 05:42:13

testgary
Member
Registered: 2025-02-06
Posts: 27

Re: TJsonClient

ab wrote:

There is not enough RTTI on FPC 3.2.2 to define the record fields.

You need to describe your record with a text definition in your code.
This is what is done for example with our OpenAPI generator.


It's done! Thank you.

Offline

Board footer

Powered by FluxBB