![]() |
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
(Tcl) 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.
load ./chilkat.dll set success 0 # ---------------------------------------------------------------------------------- # The Javascript functions called in this example are shown at the bottom of this page. # ----------------------------------------------------------------------------------- set sbScript [new_CkStringBuilder] set success [CkStringBuilder_LoadFile $sbScript "js_function_returning_array.js" "utf-8"] if {$success == 0} then { puts [CkStringBuilder_lastErrorText $sbScript] delete_CkStringBuilder $sbScript exit } set js [new_CkJs] set result [new_CkJsonObject] CkJsonObject_put_EmitCompact $result 0 # Call Eval to add the function to the context's global object set success [CkJs_Eval $js $sbScript $result] if {$success == 0} then { # Examine the result for an exception. puts [CkJsonObject_emit $result] # Also examine the LastErrorText. puts [CkJs_lastErrorText $js] delete_CkStringBuilder $sbScript delete_CkJs $js delete_CkJsonObject $result exit } # ------------------------------------------------------------------------------ # Call each function set funcCall [new_CkJsonObject] # Create JSON specifying the function name and arguments # The function has no arguments, so we only specify the name. CkJsonObject_UpdateString $funcCall "name" "getDays" set success [CkJs_CallFunction $js $funcCall $result] if {$success == 0} then { # Examine the result for an exception. puts [CkJsonObject_emit $result] # Also examine the LastErrorText. puts [CkJs_lastErrorText $js] delete_CkStringBuilder $sbScript delete_CkJs $js delete_CkJsonObject $result delete_CkJsonObject $funcCall exit } puts [CkJsonObject_emit $result] # Output: # { # "type": "array", # "value": [ # "Monday", # "Tuesday", # "Wednesday", # "Thursday", # "Friday" # ] # } # Access each array value.. set count [CkJsonObject_SizeOfArray $result "value"] set i 0 while {$i < $count} { CkJsonObject_put_I $result $i puts [CkJsonObject_stringOf $result {value[i]}] set i [expr $i + 1] } # ------------------------------------------------------------------------------ # Call the getRange(start,end) function CkJsonObject_Clear $funcCall CkJsonObject_UpdateString $funcCall "name" "getRange" CkJsonObject_UpdateInt $funcCall "args[0]" 14 CkJsonObject_UpdateInt $funcCall "args[1]" 21 set success [CkJs_CallFunction $js $funcCall $result] puts [CkJsonObject_emit $result] # Output: # { # "type": "array", # "value": [ # 14, # 15, # 16, # 17, # 18, # 19, # 20, # 21 # ] # } set count [CkJsonObject_SizeOfArray $result "value"] set i 0 while {$i < $count} { CkJsonObject_put_I $result $i puts [CkJsonObject_IntOf $result {value[i]}] set i [expr $i + 1] } # ------------------------------------------------------------------------------ # Call the getEmployees() function CkJsonObject_Clear $funcCall CkJsonObject_UpdateString $funcCall "name" "getEmployees" set success [CkJs_CallFunction $js $funcCall $result] puts [CkJsonObject_emit $result] # Output: # { # "type": "array", # "value": [ # { # "id": 101, # "name": "Alice", # "role": "Dev" # }, # { # "id": 102, # "name": "Bob", # "role": "Manager" # } # ] # } set count [CkJsonObject_SizeOfArray $result "value"] set i 0 while {$i < $count} { CkJsonObject_put_I $result $i puts "name: [CkJsonObject_stringOf $result {value[i].name}]" puts "role: [CkJsonObject_stringOf $result {value[i].role}]" puts "id: [CkJsonObject_IntOf $result {value[i].id}]" puts set i [expr $i + 1] } delete_CkStringBuilder $sbScript delete_CkJs $js delete_CkJsonObject $result delete_CkJsonObject $funcCall
|
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.