![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Call a JavaScript Function Returning an ArraySee more JavaScript ExamplesDemonstrates how to call a JavaScript function that returns an array.Note: This example requires Chilkat v11.4.0 or greater.
Use ChilkatAx-win32.pkg Procedure Test Boolean iSuccess Variant vSbScript Handle hoSbScript Handle hoJs Variant vResult Handle hoResult Variant vFuncCall Handle hoFuncCall Integer iCount Integer i String sTemp1 Integer iTemp1 Move False To iSuccess // ---------------------------------------------------------------------------------- // The Javascript functions called in this example are shown at the bottom of this page. // ----------------------------------------------------------------------------------- Get Create (RefClass(cComChilkatStringBuilder)) To hoSbScript If (Not(IsComObjectCreated(hoSbScript))) Begin Send CreateComObject of hoSbScript End Get ComLoadFile Of hoSbScript "js_function_returning_array.js" "utf-8" To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoSbScript To sTemp1 Showln sTemp1 Procedure_Return End Get Create (RefClass(cComChilkatJs)) To hoJs If (Not(IsComObjectCreated(hoJs))) Begin Send CreateComObject of hoJs End Get Create (RefClass(cComChilkatJsonObject)) To hoResult If (Not(IsComObjectCreated(hoResult))) Begin Send CreateComObject of hoResult End Set ComEmitCompact Of hoResult To False // Call Eval to add the function to the context's global object Get pvComObject of hoSbScript to vSbScript Get pvComObject of hoResult to vResult Get ComEval Of hoJs vSbScript vResult To iSuccess If (iSuccess = False) Begin // Examine the result for an exception. Get ComEmit Of hoResult To sTemp1 Showln sTemp1 // Also examine the LastErrorText. Get ComLastErrorText Of hoJs To sTemp1 Showln sTemp1 Procedure_Return End // ------------------------------------------------------------------------------ // Call each function Get Create (RefClass(cComChilkatJsonObject)) To hoFuncCall If (Not(IsComObjectCreated(hoFuncCall))) Begin Send CreateComObject of hoFuncCall End // Create JSON specifying the function name and arguments // The function has no arguments, so we only specify the name. Get ComUpdateString Of hoFuncCall "name" "getDays" To iSuccess Get pvComObject of hoFuncCall to vFuncCall Get pvComObject of hoResult to vResult Get ComCallFunction Of hoJs vFuncCall vResult To iSuccess If (iSuccess = False) Begin // Examine the result for an exception. Get ComEmit Of hoResult To sTemp1 Showln sTemp1 // Also examine the LastErrorText. Get ComLastErrorText Of hoJs To sTemp1 Showln sTemp1 Procedure_Return End Get ComEmit Of hoResult To sTemp1 Showln sTemp1 // Output: // { // "type": "array", // "value": [ // "Monday", // "Tuesday", // "Wednesday", // "Thursday", // "Friday" // ] // } // Access each array value.. Get ComSizeOfArray Of hoResult "value" To iCount Move 0 To i While (i < iCount) Set ComI Of hoResult To i Get ComStringOf Of hoResult "value[i]" To sTemp1 Showln sTemp1 Move (i + 1) To i Loop // ------------------------------------------------------------------------------ // Call the getRange(start,end) function Send ComClear To hoFuncCall Get ComUpdateString Of hoFuncCall "name" "getRange" To iSuccess Get ComUpdateInt Of hoFuncCall "args[0]" 14 To iSuccess Get ComUpdateInt Of hoFuncCall "args[1]" 21 To iSuccess Get pvComObject of hoFuncCall to vFuncCall Get pvComObject of hoResult to vResult Get ComCallFunction Of hoJs vFuncCall vResult To iSuccess Get ComEmit Of hoResult To sTemp1 Showln sTemp1 // Output: // { // "type": "array", // "value": [ // 14, // 15, // 16, // 17, // 18, // 19, // 20, // 21 // ] // } Get ComSizeOfArray Of hoResult "value" To iCount Move 0 To i While (i < iCount) Set ComI Of hoResult To i Get ComIntOf Of hoResult "value[i]" To iTemp1 Showln iTemp1 Move (i + 1) To i Loop // ------------------------------------------------------------------------------ // Call the getEmployees() function Send ComClear To hoFuncCall Get ComUpdateString Of hoFuncCall "name" "getEmployees" To iSuccess Get pvComObject of hoFuncCall to vFuncCall Get pvComObject of hoResult to vResult Get ComCallFunction Of hoJs vFuncCall vResult To iSuccess Get ComEmit Of hoResult To sTemp1 Showln sTemp1 // Output: // { // "type": "array", // "value": [ // { // "id": 101, // "name": "Alice", // "role": "Dev" // }, // { // "id": 102, // "name": "Bob", // "role": "Manager" // } // ] // } Get ComSizeOfArray Of hoResult "value" To iCount Move 0 To i While (i < iCount) Set ComI Of hoResult To i Get ComStringOf Of hoResult "value[i].name" To sTemp1 Showln "name: " sTemp1 Get ComStringOf Of hoResult "value[i].role" To sTemp1 Showln "role: " sTemp1 Get ComIntOf Of hoResult "value[i].id" To iTemp1 Showln "id: " iTemp1 Showln "" Move (i + 1) To i Loop End_Procedure
|
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.