Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: PLAT-10056

In this Page

...


Description

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

Info

Instead of chaining multiple sub-expressions using the hasOwnProperty method to validate the subpath at each node of the JSONPath, you can call hasPath only once to do the same validation. You must provide the JSONPath to the property.


Syntax


Paste code macro
object.hasPath(JSONPath.to.property)


Example

Expression: $.hasPath("Id")

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

Example JSON Object:

Paste code macro
languagejson
titleJSON Example
{
  "Name":"previewdata.json",
  "Type":"File",
  "Size (in bytes)":"4",
  "Owner":null,
  "Update date":"2019-10-06T16:50:58.000Z",
  "Editor": {
    "EditorName": "John Doe",
    "Dept": "Marketing"
  }
  "Creation date":"unknown",
  "Permissions":"unknown"
}

Expression$.hasPath("Type")

Result: Returns True

since

because the object "Type" has a specified value. 

Expression$.hasPath($.Editor.EditorName)

Result: Returns True because "EditorName" 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.

Note

This function is not supported in Spark pipelines.


Syntax


Code Block
object.isEmpty()


Example

Expression: {}.isEmpty()

Result: Returns true.


Expression: { foo: 1 }.isEmpty()

Result: Returns false.

...

Expand
titleExtend Method: Converting an array into an object

A JSON Array of objects with unique/non-overlapping keys can be converted to an object using the extend object method along with a Spread Operator.  The extend object method does so by creating objects dynamically from other objects passed in as arguments, the spread operator will have to be used to indicate that the elements of the array should be treated as the arguments to the function. The expression to be used is:


Paste code macro
titleExpression using extend method to convert an array into an object
{}extend(...$<Array_name>)

1. Input the array into Mapper Snap (this can be done using a JSON Generator Snap). For this example, the following array will be used:

Paste code macro
languagejson
titleJSON Array
{
 "myArray": [
   {
     "Header1": {
       "a": 11,
       "b": 21,
       "c": 31
     }
   },
   {
     "Header2": {
       "a": 12,
       "b": 22,
       "c": 32
     }
   },
   {
     "Header3": {
       "a": 13,
       "b": 23,
       "c": 33
     }
   }
 ]
}

2. The Mapper Snap must be configured as shown below. Notice the Expression and Target path fields.

3. When executed, the output will be an object.

Note

The array should have unique keys for this method to work, if they overlap then the last element of the array will be converted.