DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoJson
Integer iBatteryVal
String sTimeZone
Integer iRangeVal
String sLongitudeStr
String sTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Set ComEmitCompact Of hoJson To False
// Assume the file contains the data as shown above..
Get ComLoadFile Of hoJson "qa_data/json/estimote.json" To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoJson To sTemp1
Showln sTemp1
Procedure_Return
End
// To get the value for "settings.battery" for the 1st array object:
Get ComIntOf Of hoJson "*[0].settings.battery" To iBatteryVal
Showln "battery: " iBatteryVal
// To get the value for "settings.timezon" for the 1st array object:
Get ComStringOf Of hoJson "*[0].settings.timezone" To sTimeZone
Showln "timezone: " sTimeZone
// To get the "settings.range" for the 2nd array object:
Get ComIntOf Of hoJson "*[1].settings.range" To iRangeVal
Showln "range: " iRangeVal
// 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.
Get ComStringOf Of hoJson "*[0].settings.longitude" To sLongitudeStr
Showln "longitude: " sLongitudeStr
End_Procedure