Sample code for 30+ languages & platforms
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

DataFlex
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