Sample code for 30+ languages & platforms
Delphi DLL

HTTP POST JSON and Parse JSON Response

See more HTTP Examples

Demonstrates how to send a JSON POST and then parse the JSON response.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, HttpResponse, JsonObject;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
json: HCkJsonObject;
http: HCkHttp;
resp: HCkHttpResponse;
jsonResp: HCkJsonObject;
lifeAmount: PWideChar;
lifeResidualAmount: PWideChar;

begin
success := False;

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

json := CkJsonObject_Create();

success := CkJsonObject_LoadFile(json,'qa_data/json/jsonBodyForHttpPost.json');
if (success = False) then
  begin
    Memo1.Lines.Add(CkJsonObject__lastErrorText(json));
    Exit;
  end;

http := CkHttp_Create();

resp := CkHttpResponse_Create();
success := CkHttp_HttpJson(http,'POST','https://test.something.com/XYZ/API/v1/CreditInsuranceCalculator/CalculatePremiums',json,'application/json',resp);
if (success = False) then
  begin
    Memo1.Lines.Add(CkHttp__lastErrorText(http));
    Exit;
  end;

jsonResp := CkJsonObject_Create();
CkJsonObject_Load(jsonResp,CkHttpResponse__bodyStr(resp));

CkJsonObject_putEmitCompact(jsonResp,False);
Memo1.Lines.Add(CkJsonObject__emit(jsonResp));

// The JSON response to be parsed looks like this:
// {
//   "LifeAmount": 513.85,
//   "LifeResidualAmount": 123.38,
//   "CriticalIllnessAmount": 0,
//   "CriticalIllnessResidualAmount": 0,
//   "DisabilityAmount": 881.70,
//   "PolicyFee": 0.00,
//   "PolicyFeeSecondary": 0,
//   "PolicyFeeHidden": 50.00,
//   "PolicyFeeHiddenSecondary": 0
// }

// We can get the floating point numbers as strings.  Then convert to double
// using the appropriate string-to-double conversion for your programming language.
// For example, in C++ use atof.  In C# use Convert.ToDouble.  
lifeAmount := CkJsonObject__stringOf(jsonResp,'LifeAmount');
lifeResidualAmount := CkJsonObject__stringOf(jsonResp,'LifeResidualAmount');

Memo1.Lines.Add('LifeAmount = ' + lifeAmount);
Memo1.Lines.Add('LifeResidualAmount = ' + lifeResidualAmount);

CkJsonObject_Dispose(json);
CkHttp_Dispose(http);
CkHttpResponse_Dispose(resp);
CkJsonObject_Dispose(jsonResp);

end;