Delphi ActiveX
Delphi ActiveX
JSON Estimote Data
See more JSON Examples
Demonstrates accessing some data from an Estimote REST API response. The Estimate REST API responds with a JSON array (i.e. something beginning with "[" and ending with "]"). To parse, this must be made into a JSON object by prepending "{"*":" and appending "}".This example uses the following JSON object:
{"*":[{
"id" : "B9407F30-F5F8-466E-AFF9-25556B57FE6D:28203:50324",
"uuid" : "B9407F30-F5F8-466E-AFF9-25556B57FE6D",
"major" : 28203,
"minor" : 50324,
"mac" : "dd6fc4946e2b",
"settings" : {
"battery" : 100,
"interval" : 950,
"hardware" : "D3.4",
"firmware" : "A3.2.0",
"basic_power_mode" : true,
"smart_power_mode" : true,
"timezone" : "America/Los_Angeles",
"security" : false,
"motion_detection" : true,
"latitude": 37.7979,
"longitude": -122.4408,
"conditional_broadcasting" : "flip to stop",
"broadcasting_scheme" : "estimote",
"range" : -12,
"power" : -12,
"firmware_deprecated" : false,
"firmware_newest" : true,
"location" : null
},
"color" : "blueberry",
"context_id" : 339488,
"name" : "blueberry ibeacon1",
"battery_life_expectancy_in_days" : 1377,
"tags" : []
}, {
"id" : "B9407F30-F5F8-466E-AFF9-25556B57FE6D:25845:21739",
"uuid" : "B9407F30-F5F8-466E-AFF9-25556B57FE6D",
"major" : 25845,
"minor" : 21739,
"mac" : "ff5454eb64f5",
"settings" : {
"battery" : 100,
"interval" : 950,
"hardware" : "D3.4",
"firmware" : "A3.2.0",
"basic_power_mode" : false,
"smart_power_mode" : true,
"timezone" : "America/Los_Angeles",
"security" : false,
"motion_detection" : true,
"conditional_broadcasting" : "flip to stop",
"broadcasting_scheme" : "estimote",
"range" : -12,
"power" : -12,
"firmware_deprecated" : false,
"firmware_newest" : true,
"location" : null
},
"color" : "blueberry",
"context_id" : 339483,
"name" : "blueberry2",
"battery_life_expectancy_in_days" : 1168,
"tags" : []
}
]}
Chilkat Delphi ActiveX Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
json: TChilkatJsonObject;
batteryVal: Integer;
timeZone: WideString;
rangeVal: Integer;
longitudeStr: WideString;
begin
success := 0;
json := TChilkatJsonObject.Create(Self);
json.EmitCompact := 0;
// Assume the file contains the data as shown above..
success := json.LoadFile('qa_data/json/estimote.json');
if (success <> 1) then
begin
Memo1.Lines.Add(json.LastErrorText);
Exit;
end;
// To get the value for "settings.battery" for the 1st array object:
batteryVal := json.IntOf('*[0].settings.battery');
Memo1.Lines.Add('battery: ' + IntToStr(batteryVal));
// To get the value for "settings.timezon" for the 1st array object:
timeZone := json.StringOf('*[0].settings.timezone');
Memo1.Lines.Add('timezone: ' + timeZone);
// To get the "settings.range" for the 2nd array object:
rangeVal := json.IntOf('*[1].settings.range');
Memo1.Lines.Add('range: ' + IntToStr(rangeVal));
// To get the "settings.longitude" for the 1st array object:
// Note: Any primitie value can be retrieved as as string: integers, floating point numbers, booleans, etc.
longitudeStr := json.StringOf('*[0].settings.longitude');
Memo1.Lines.Add('longitude: ' + longitudeStr);
end;