CkPython
CkPython
Call a JavaScript Function Returning an Array
See more JavaScript Examples
Demonstrates how to call a JavaScript function that returns an array.Chilkat CkPython Downloads
import sys
import chilkat
success = False
# ----------------------------------------------------------------------------------
# The Javascript functions called in this example are shown at the bottom of this page.
# -----------------------------------------------------------------------------------
sbScript = chilkat.CkStringBuilder()
success = sbScript.LoadFile("js_function_returning_array.js","utf-8")
if (success == False):
print(sbScript.lastErrorText())
sys.exit()
js = chilkat.CkJs()
result = chilkat.CkJsonObject()
result.put_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 = chilkat.CkJsonObject()
# 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.put_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.put_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.put_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