Portal Community

Basic Dot Notation

// Source object:
// { "firstName": "Jane", "lastName": "Smith" }

"path": "firstName"    // → "Jane"
"path": "lastName"     // → "Smith"

Nested Objects

// Source object:
// { "address": { "street": "10 High St", "city": "London", "country": "GB" } }

"path": "address.street"    // → "10 High St"
"path": "address.city"      // → "London"
"path": "address.country"   // → "GB"

Deeply Nested

// Source object:
// { "company": { "billing": { "address": { "postcode": "EC1A 1BB" } } } }

"path": "company.billing.address.postcode"   // → "EC1A 1BB"

Array Indexing

// Source object:
// { "contacts": [ { "type": "email", "value": "jane@example.com" },
//                 { "type": "phone", "value": "+44 20 1234 5678" } ] }

"path": "contacts[0].value"   // → "jane@example.com"
"path": "contacts[1].value"   // → "+44 20 1234 5678"
"path": "contacts[1].type"    // → "phone"

Root-Level Array

// Source object:
// [ "apple", "banana", "cherry" ]

"path": "[0]"    // → "apple"
"path": "[2]"    // → "cherry"

Path Syntax Reference

SyntaxAccessesExample PathExample Source
fieldTop-level propertyfirstName{ firstName: "Jane" }
a.bNested propertyaddress.city{ address: { city: "London" } }
a.b.cDeeply nesteda.b.c{ a: { b: { c: 42 } } }
arr[n]Array element by indexitems[0]{ items: ["first", "second"] }
arr[n].fieldProperty of array elementcontacts[0].email{ contacts: [{ email: "..." }] }

What Happens When the Path Does Not Exist?

ScenarioBehaviour
Path resolves to undefinedControl initial value is undefined → uses control's defaultValue if set, otherwise empty
Intermediate object is nullSame as undefined — treated as missing
Array index out of boundsSame as undefined
Path on a non-objectLogged as a warning; value treated as undefined
Use Shallow Paths Where Possible Shallow paths (e.g., firstName) are easier to map when your API returns flat DTOs. If your API returns nested objects, use a transform on the server to flatten before passing as initialValues, rather than using deeply nested binding paths. Shallow paths are also easier to maintain when the API schema changes.