Field Access
Expressions reference fields from your JSON data using several access patterns. The available data depends on the context β in Tabular Operations each row is the scope, in Find & Replace the old variable holds the current value.
Simple field names
Use the field name directly as an identifier:
{{name}} β value of the "name" field
{{age}} β value of the "age" field
{{isActive}} β value of the "isActive" fieldGiven:
{ "name": "Alice", "age": 25, "isActive": true }| Expression | Result |
|---|---|
{{name}} | "Alice" |
{{age}} | 25 |
{{isActive}} | true |
Nested field access (dot notation)
Use dots to access nested properties:
{{address.city}} β value of city inside address
{{user.profile.avatar}} β deeply nested accessGiven:
{
"user": {
"profile": {
"name": "Alice",
"avatar": "alice.png"
}
}
}| Expression | Result |
|---|---|
{{user.profile.name}} | "Alice" |
{{user.profile.avatar}} | "alice.png" |
If any part of the chain is null or undefined, the expression returns undefined safely (no error thrown). For example, {{user.address.zip}} returns undefined if address doesnβt exist.
Quoted string keys
For field names that contain special characters (spaces, dots, hyphens), use quoted strings:
{{"first-name"}} β value of the "first-name" field
{{"my field"}} β value of the "my field" field
{{"data.2024"}} β value of the "data.2024" field (literal key, not nested)Given:
{
"first-name": "Alice",
"my field": 42,
"data.2024": "report"
}| Expression | Result |
|---|---|
{{"first-name"}} | "Alice" |
{{"my field"}} | 42 |
{{"data.2024"}} | "report" |
A quoted string at the root level first checks if it matches a field name in the data. If the field exists, it returns the field value. If not, it returns the literal string.
Quoted key + property access
Combine quoted keys with dot notation for nested access under special-character keys:
{{"user-data".name}} β access "name" inside "user-data"
{{"my.config".timeout}} β access "timeout" inside "my.config"Given:
{
"user-data": {
"name": "Alice",
"role": "admin"
}
}| Expression | Result |
|---|---|
{{"user-data".name}} | "Alice" |
{{"user-data".role}} | "admin" |
Reserved identifiers
Some identifiers resolve to built-in objects or functions instead of data fields:
| Identifier | Resolves to |
|---|---|
Math | Math functions (abs, ceil, floor, etc.) |
Date | Date functions (now, parse, format) |
stringify | JSON.stringify utility |
toString | String conversion utility |
keys | Object.keys utility |
values | Object.values utility |
old | Current value in Find & Replace context |
If your data has a field named Math, Date, stringify, toString, keys, values, or old, the expression will resolve to the built-in instead of your data field. Avoid using these as field names in data you plan to use with expressions.
What is NOT supported
Computed property access
Bracket notation for dynamic property access is not allowed:
{{obj[key]}} β ERROR: Computed access not allowed
{{arr[0]}} β ERROR: Computed access not allowed
{{data["field"]}} β ERROR: Computed access not allowedUse dot notation or quoted string keys instead.
Exception: Array indexing works when itβs the result of a method call. For example, {{old.split(",")[0]}} works because split returns an array and [0] is evaluated naturally by the JavaScript engine on the returned value.
Forbidden properties
Accessing __proto__, prototype, or constructor on any object throws an error:
{{obj.__proto__}} β ERROR: Forbidden property
{{obj.constructor}} β ERROR: Forbidden property