PowerShell
PowerShell
Call a JavaScript Function Returning an Object
See more JavaScript Examples
Demonstrates how to call a JavaScript function that returns an object.Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# This is the JavaScript function we'll call:
# function getSettings() {
# return {
# theme: "dark",
# notifications: true,
# version: 1.0
# };
# }
$sbScript = New-Object Chilkat.StringBuilder
$sbScript.Append("function getSettings() {")
$sbScript.Append(" return {")
$sbScript.Append(" theme: `"dark`",")
$sbScript.Append(" notifications: true,")
$sbScript.Append(" version: 1.0")
$sbScript.Append(" };")
$sbScript.Append("}")
$js = New-Object Chilkat.Js
$result = New-Object Chilkat.JsonObject
$result.EmitCompact = $false
# Call Eval to add the function to the context's global object
$success = $js.Eval($sbScript,$result)
if ($success -eq $false) {
# Examine the result for an exception.
$($result.Emit())
# Also examine the LastErrorText.
$($js.LastErrorText)
exit
}
# ------------------------------------------------------------------------------
# Call the function getSettings()
$funcCall = New-Object Chilkat.JsonObject
# Create JSON specifying the function name and arguments
# The function has no arguments, so we only specify the name.
# {
# "name": "getSettings",
# }
$funcCall.UpdateString("name","getSettings")
$success = $js.CallFunction($funcCall,$result)
if ($success -eq $false) {
# Examine the result for an exception.
$($result.Emit())
# Also examine the LastErrorText.
$($js.LastErrorText)
exit
}
$($result.Emit())
# Output:
# {
# "type": "object",
# "value": {
# "theme": "dark",
# "notifications": true,
# "version": 1
# }
# }
# Examine the object's members
$("theme: " + $result.StringOf("value.theme"))
$("notifications: " + $result.BoolOf("value.notifications"))
$("version: " + $result.IntOf("value.version"))
# Output:
# theme: dark
# notifications: True
# version: 1