Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

JSON Paths that need Double Quotes

See more JSON Examples

This example explains and demonstrates the situations where parts within a JSON path need to be enclosed in double-quotes.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
program ChilkatDemo;

// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  SysUtils,
  CkDllLoader,
  Chilkat.JsonObject;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  json: TJsonObject;

begin
  //  Imagine we have the following JSON:

  //  	{ 
  //  	  "Meta Data": { 
  //  	    "1: Symbol": "MSFT",
  //  	    "2: Indicator": "Relative Strength Index (RSI)",
  //  	    "3: Last Refreshed": "2017-07-28 09:30:00",
  //  	    "4: Interval": "15min",
  //  	    "5: Time Period": 10,
  //  	    "6: Series Type": "close",
  //  	    "7: Time Zone": "US/Eastern Time"
  //  	  },
  //  	  "Technical Analysis: RSI": { 
  //  	    "2017-07-28 09:30": { 
  //  	      "RSI": "38.6964"
  //  	    },
  //  	    "2017-07-27 16:00": { 
  //  	      "RSI": "50.0088"
  //  	    } 
  //  	} 

  //  The path to the RSI valud 38.6964 is Technical Analysis: RSI.2017-07-28 09:30.RSI

  //  Whenever a path part contains a SPACE or "." char, that part must be enclosed
  //  in double quotes.  For example:

  json := TJsonObject.Create;
  json.LoadFile('qa_data/json/rsi.json');

  WriteLn('RSI: ' + json.StringOf('"Technical Analysis: RSI"."2017-07-28 09:30".RSI'));

  //  output is 38.6964


  json.Free;

end;

// ---------------------------------------------------------------------------

begin

  try
    RunDemo;
  except
    on E: Exception do
      WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
  end;

  WriteLn;
  {$IFDEF MSWINDOWS}
  WriteLn('Press Enter to exit...');
  ReadLn;
  {$ENDIF}
end.