Object Functions and Properties

In this Page

Object Literals

Description

Object literals allow you to construct an object with a set of properties.

Object literals function similar to JavaScript object literals.

Within the object literal, the following variables are available:

  • this - A reference to the current object that can be used to reference previously defined properties.
  • __parent__ - A reference to the parent object when used within a nested object literal.
  • __root__ - A reference to the top-level object when used within a deeply nested object literal.


Syntax

An object literal is a comma-delimited list of zero or more pairs of property names and values surrounded by curly braces ({}), like so:

The property name can be computed dynamically by enclosing an expression in square brackets ([]), like so:

The result of the expression will be converted into a string.

Example

Object Methods

The following methods are shared among all object types.

entries

Description

Returns an array of the given object's own enumerable property [key,value] pairs. See also keys, values.

Syntax
Example

Input:

Expression: $user.entries()
Result: 
[ ["name","John"], ["age",30] ]

extend

Description

Returns a new object with the properties of the current one merged with the properties of the objects that were passed in. This is similar to http://underscorejs.org/#extend, but the extend object method returns a new object instead of modifying the given one. 

The extend object method can also be used to convert an array of objects into an object. An example illustrating the same is described in the Example Use Cases section below.

Syntax
Example

Expression: $.extend({ newField1 : 'foo' }, { newField2 : 'bar' })

Result:

get

Description

Get the value of a property or a default value if the object does not have the given property. If no default value is given, null is returned.

See also: Checking for optional properties and returning defaults in the expression language

Syntax

object.get(field, [defaultValue])

Example

Expression$.get("Id")

Result: Returns the value of the "Id" property or null if the object does not have the property.


Expression$.get("Id", 123)

Result: Returns the value of the "Id" property or the number "123" if the object does not have the property.

getFirst

Description

Find the value for the given property name. If the property does not exist, the function returns the default value (if given); otherwise, null is returned. If the value is a populated list, then the function returns the first value in the list; otherwise, it returns the default value if present or null.

Syntax

object.getFirst(propertyName, defaultValue)

Example

Expression$.getFirst("test")

Where $test  is the string "abc123"

Result: abc123


Expression$.getFirst("test")

Where $test is a list consisting of [5, 10, 15, 20]

Result: 5

hasOwnProperty

Description

Indicates whether the object has the specified property.

The in operator and get method can be used as a shorthand to test if an object has a property or get the value of a property with a default if it does not exist.

Syntax
Example

Expression: $.hasOwnProperty("Id")

Result: Returns true if the object has the key "Id"


Expression: To create a ternary conditional expression:

$.hasOwnProperty('query') ? $query : 'not present in input'

hasPath

Description

Indicates whether the object has the specified property. This method is recommended when working with JSON-Path, especially when looking for fields nested deep within the object.

Syntax
Example

Expression: $.hasPath("Id")

Result: Returns true if the object has the key "Id"

Example JSON Object:

Expression$.hasPath("Type")

Result: Returns True since the object "Type" has a specified value. 

Expression: $.hasPath("Owner")

Result: Returns False since even though the object has the key "Owner", it is null.

Expression: $.hasPath("Region")

Result: Returns False since the object does not have "Region".

isEmpty

Description

Returns true if the given object has no properties.

Syntax
Example

Expression: {}.isEmpty()

Result: Returns true.


Expression: { foo: 1 }.isEmpty()

Result: Returns false.

filter

DescriptionCreate a new object that retains some properties from the original as specified by the given callback.
Syntax
  • callback - A function that takes three arguments (property-value, property-name, input-object) and returns true if the property should be included in the returned object or false if it should be left out.
Example

Expression: $.filter((value, key) => key.startsWith("new"))

Result:

keys

Description

Returns an array of strings that represent all the enumerable properties of the given object. The ordering of the properties is the same as that given by looping over the properties of the object manually. See also values, entries

Syntax
Example

Input:

Expression: $user.keys()
Result: [name, age]

mapKeys

Description

Transform the names of properties in an object using a callback.

This is similar to https://lodash.com/docs/4.17.4#mapKeys

Syntax
  • callback - A function that takes three arguments (property-value, property-name, input-object) and returns the new value for the property key.
Example

Expression: $.mapKeys((value, key) => "new" + key)

Result:

mapValues

Description

Transform the values of properties in an object using a callback.

This is similar to https://lodash.com/docs/4.17.4#mapValues

Syntax
  • callback - A function that takes three arguments (property-value, property-name, input-object) and returns the new value for the property.
Example

Expression: $.mapValues((value, key) => key == "newField1" ? "foo" : "bar")

Result:

merge

Description

Perform a deep merge of this object with those passed in. The method will recursively merge properties from source objects into the destination. Objects and arrays are recursively merged. Other values will overwrite the value in the destination.

This is similar to https://lodash.com/docs/4.17.4#merge

Syntax

.

Example

Expression: $.merge({child: {age: 32}})

Input:


Result:

values

Description

Returns an array containing the given object's own enumerable property values. See also entries, keys

Syntax
Example

Input:

Expression: $user.values()
Result: 
["John", 30]

Example Use Cases