Access to a container or an item in a container is specified by the use of a directed path. A directed path is a string representation of how to traverse a container to identify a particular item. Directed path components always have leading and trailing spaces removed. To preserve spaces in Object names, they must be enclosed in double quote (") characters.
The minimum directed path is a name of a container.
You refer to an array element as [index]. The indexes are 0 based. [0] refers to the first item in an array, [1] to the second, etc.
You refer to an object item as: .name
The name in a JSON Object's name:value pair can essentially be any string ... and can even be empty. When parsing the reference to an item, Yate ignores leading and trailing spaces and terminates a name at a period (.), an open square bracket ([) or the end of the directed path. In order to support any character in names, they can be enclosed in double quote (") characters. A double quote character can be represented as two adjacent double quote characters. For example, a name of spaceAB"CDspace would be specified as " AB""CD ".
The actual container name cannot be escaped so do not use periods (.), open square brackets ([) or double quote characters (") in container names.
There may be times when the need to escape a sequence is non deterministic. For example, you might be using values as object names and you do not know ahead of time what characters the values contain. The Re-encode statement has an Escape for Container Directed Path function. This will ensure that unknown values are properly escaped. eg. Assume that you are using files paths as items in a container object:
Get Property Path to File -> Variable 0 Re-encode Variable 0 to Escape for Container Directed Path Set the container item at 'container.processedFiles.\v0' to boolean 'true'
Names in containers can be treated as case sensitive or case insensitive. See the Treat container object item names as case insensitive setting in Settings - Actions - General for more information.
Sample JSON text stored in a container named sample
[ { "id" : 23, "location" : { "address" : "123 Front Street", "phone #" : "555-5555" }, "moods" : [ "rock", "blues" ], "name" : "Jack", "special" : true }, { "id" : 24, "location" : { "address" : "21 Main Street", "phone #" : "555-2222" }, "moods" : [ "classical", "opera", "jazz" ], "name" : "Jill", "special" : null } ]