Chilkat2-Python
Chilkat2-Python
Call a JavaScript Function Returning an Array
See more JavaScript Examples
Demonstrates how to call a JavaScript function that returns an array.Chilkat Chilkat2-Python Downloads
import sys
import chilkat2
success = False
# ----------------------------------------------------------------------------------
# The Javascript functions called in this example are shown at the bottom of this page.
# -----------------------------------------------------------------------------------
sbScript = chilkat2.StringBuilder()
success = sbScript.LoadFile("js_function_returning_array.js","utf-8")
if (success == False):
print(sbScript.LastErrorText)
sys.exit()
js = chilkat2.Js()
result = chilkat2.JsonObject()
result.EmitCompact = False
# Call Eval to add the function to the context's global object
success = js.Eval(sbScript,result)
if (success == False):
# Examine the result for an exception.
print(result.Emit())
# Also examine the LastErrorText.
print(js.LastErrorText)
sys.exit()
# ------------------------------------------------------------------------------
# Call each function
funcCall = chilkat2.JsonObject()
# Create JSON specifying the function name and arguments
# The function has no arguments, so we only specify the name.
funcCall.UpdateString("name","getDays")
success = js.CallFunction(funcCall,result)
if (success == False):
# Examine the result for an exception.
print(result.Emit())
# Also examine the LastErrorText.
print(js.LastErrorText)
sys.exit()
print(result.Emit())
# Output:
# {
# "type": "array",
# "value": [
# "Monday",
# "Tuesday",
# "Wednesday",
# "Thursday",
# "Friday"
# ]
# }
# Access each array value..
count = result.SizeOfArray("value")
i = 0
while i < count :
result.I = i
print(result.StringOf("value[i]"))
i = i + 1
# ------------------------------------------------------------------------------
# Call the getRange(start,end) function
funcCall.Clear()
funcCall.UpdateString("name","getRange")
funcCall.UpdateInt("args[0]",14)
funcCall.UpdateInt("args[1]",21)
success = js.CallFunction(funcCall,result)
print(result.Emit())
# Output:
# {
# "type": "array",
# "value": [
# 14,
# 15,
# 16,
# 17,
# 18,
# 19,
# 20,
# 21
# ]
# }
count = result.SizeOfArray("value")
i = 0
while i < count :
result.I = i
print(str(result.IntOf("value[i]")))
i = i + 1
# ------------------------------------------------------------------------------
# Call the getEmployees() function
funcCall.Clear()
funcCall.UpdateString("name","getEmployees")
success = js.CallFunction(funcCall,result)
print(result.Emit())
# Output:
# {
# "type": "array",
# "value": [
# {
# "id": 101,
# "name": "Alice",
# "role": "Dev"
# },
# {
# "id": 102,
# "name": "Bob",
# "role": "Manager"
# }
# ]
# }
count = result.SizeOfArray("value")
i = 0
while i < count :
result.I = i
print("name: " + result.StringOf("value[i].name"))
print("role: " + result.StringOf("value[i].role"))
print("id: " + str(result.IntOf("value[i].id")))
print("")
i = i + 1