UI Builder: JSON Page Properties binding not working
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-29-2026 06:10 AM - edited 04-29-2026 06:39 AM
Hi,
I've been diving into UI Builder a bit, trying to create a new Component.
For some reason I cannot get the values of JSON Page Properties to show up when referencing them directly via property binding or script.
As far as I know, I'm doing everything as described in the guides and also how it would seem most intuitive.
Am I missing something?
I setup a little experiment with the following elements:
- 3 Page Properties
- A simple String property
- A JSON property as an array
- two array elements
- A JSON property as an object
- two object properties
- 2 Client State Parameters
- A JSON property that binds to the array-type JSON Page Property above
- A JSON property that binds to the object-type JSON Page Property above
- 7 Stylized Text Components, to which I bind the various combinations of Page Properties and Client State Parameters
The setup results in the following:
The simple String Page Property always shows up when bound to the Text component.
The JSON Page Properties never show up when bound directly or retrieved via script.
The Client State Parameteres always show up when bound directly.
Having to bind Page Properties to Client State Parameters is never mentioned as far as I know. All guides seem to say that you can directly use Page Properties and freely bind to them. The String Page Property also just works.
Why don't the JSON properties work?
When selecting an empty Text Component, it shows the correctly resolved value in the value preview:
Why does it not show up in the Component itself?
I've tried clearing UI Builder Cache, Browser Cache and previewing and reloading everything numerous times.
Nothing seems to make the properties properly resolve or show up.
I'd appreciate any input 🙂
Thanks in advance!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thursday
Hi @Aaron _S
This is expected behavior. Page Properties that contain JSON objects or arrays aren't rendered directly by components such as Stylized Text. The value can be resolved in the binding preview, which is why you see it there, but the component expects a primitive value string, number, boolean at runtime To use JSON Page Properties in the UI, either Bind the Page Property to a Client State Parameter first and use the Client State Parameter in your component bindings, or Reference a specific property within the JSON object (for example, `@context.props.myJson.someProperty`) rather than the entire object/array, or Convert the value to a string with `JSON.stringify()` if your goal is simply to display the JSON
For example:
```javascript
JSON.stringify(@context.props.myJson)
```
or
```javascript
@context.props.myJson.someProperty
```
Hope that helps.