# Data Types \ Json \ JsonObject

A JSON object is a collection of named fields — for example `{"name": "Sam", "age": 42}`. Each field has a name (sometimes called a *key*) and a value. The nodes on this page let you build objects, set or read fields by name, inspect them, and turn them into plain text you can store, send, or print.

## What's on this page

- **Create** — start a brand-new object, either empty or from a piece of text.
- **Set a field** — add or change a named field on an object (one node per value type).
- **Read a field** — pull the value of a named field back out (one node per value type).
- **Inspect** — list every field's name, or find out what kind of value a field holds.
- **Convert** — turn the whole object into a single piece of text.

**About fields:** field names are case-sensitive — `"Name"` and `"name"` are different. Setting a value on a field that already exists replaces the old value; setting one with a new name adds the field.

---

## Create

### ![Response_JsonObject_Create.png](https://simlab-soft.com/help/uploads/images/gallery/2026-10/scaled-1680-/response-jsonobject-create.png) Create Json Object

Makes a fresh, empty JSON object. Use this as the starting point when you want to build a record from scratch.

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/39" type="video/mp4"> Your browser doesn't support embedded video. </source></video>

#### What it does

This node produces a brand-new JSON object with nothing in it: `{}`. From there you'd typically wire it into one or more **Set Json Object Field** nodes to fill it with named fields.

#### Inputs

<table id="bkmrk-port-type-what-to-co"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node's **Execute** output. The node only runs when triggered.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires after this node finishes. Wire it into whatever should run next.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>A new, empty object `{}`.</td></tr></tbody></table>

#### Tips

- **Chain it.** Wire this node's **JsonObject** output into the **JsonObject** input of a **Set Json Object Field** node to add the first field.
- **Or start from text.** If you already have your data as a string like `{"name": "Sam"}`, use **Create Json Object From String** instead.

### ![Response_JsonObject_Create_FromString.png](https://simlab-soft.com/help/uploads/images/gallery/2026-10/scaled-1680-/response-jsonobject-create-fromstring.png) Create Json Object From String

Reads a piece of text written in JSON object form and turns it into a real JSON object you can work with.

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/51" type="video/mp4"> Your browser doesn't support embedded video. </source></video>

#### What it does

Useful when the data arrived as text — for example from a file you read, a message someone sent, or a value pasted into a configuration. The node parses the text and gives you back a proper JSON object that the other JSON nodes can use.

#### Inputs

<table id="bkmrk-port-type-what-to-co-0"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node's **Execute** output.</td></tr><tr><td style="white-space: nowrap;">**String**</td><td style="white-space: nowrap;">Text</td><td>The text to parse. It must look like a JSON object — that is, start with `{` and end with `}`, with comma-separated `"name": value` pairs.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-0"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires after this node finishes.</td></tr><tr><td style="white-space: nowrap;">**String**</td><td style="white-space: nowrap;">Text</td><td>The same text you passed in (in case the next node needs it as well).</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The parsed object.</td></tr></tbody></table>

#### Example

<table id="bkmrk-string-input-%7B%22name%22"><tbody><tr><td style="white-space: nowrap;">**String** input</td><td>`{"name": "Sam", "age": 42}`</td></tr><tr><td style="white-space: nowrap;">**JsonObject** output</td><td>`{"name": "Sam", "age": 42}` — now a real JSON object</td></tr></tbody></table>

#### Tips

- **Match the format.** If the text is malformed (a missing brace, unquoted field name, extra comma, etc.) the node won't be able to parse it.
- **Reverse direction.** To go the other way and turn an object *into* text, see **Json Object To String** further down this page.

---

## Set a field

These seven nodes all do the same thing — set a named field on a JSON object — but each one accepts a different kind of value. Pick the one that matches what you're storing.

If the field already exists on the object, its value is replaced. If it doesn't exist, the field is added. The original object isn't modified; what comes out is a new object with the change applied.

### Set Json Object Field (String)

Sets a text field on a JSON object.

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/45" type="video/mp4"> Your browser doesn't support embedded video. </source></video>

#### What it does

This node takes a JSON object, a field name, and a piece of text, and gives you back a new object with that field set to the text.

#### Inputs

<table id="bkmrk-port-type-what-to-co-1"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node's **Execute** output.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The object to update. Often comes from a **Create Json Object** node or from a previous step.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The name of the field to set. If the field already exists its value is replaced; if not, it's added.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">Text</td><td>The text to store under that name.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-1"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires after this node finishes.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The updated object with your field set.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The same name you passed in.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">Text</td><td>The same text you passed in.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonobject-input-%7B%22n"><tbody><tr><td style="white-space: nowrap;">**JsonObject** input</td><td>`{"name": "Sam", "age": 42}`</td></tr><tr><td style="white-space: nowrap;">**Name** input</td><td>`"city"`</td></tr><tr><td style="white-space: nowrap;">**Value** input</td><td>`"Portland"`</td></tr><tr><td style="white-space: nowrap;">**JsonObject** output</td><td>`{"name": "Sam", "age": 42, "city": "Portland"}`</td></tr></tbody></table>

### Set Json Object Field (Number)

Sets a numeric field on a JSON object.

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/44" type="video/mp4"> Your browser doesn't support embedded video. </source></video>

#### What it does

Same as the text version, but the value being stored is a number. Works with whole numbers and decimals; positive or negative.

#### Inputs

<table id="bkmrk-port-type-what-to-co-2"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node's **Execute** output.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The object to update.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The name of the field to set.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">Number</td><td>The number to store under that name.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-2"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires after this node finishes.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The updated object with your field set.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The same name you passed in.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">Number</td><td>The same number you passed in.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonobject-input-%7B%22w"><tbody><tr><td style="white-space: nowrap;">**JsonObject** input</td><td>`{"width": 800, "height": 600}`</td></tr><tr><td style="white-space: nowrap;">**Name** input</td><td>`"depth"`</td></tr><tr><td style="white-space: nowrap;">**Value** input</td><td>`24`</td></tr><tr><td style="white-space: nowrap;">**JsonObject** output</td><td>`{"width": 800, "height": 600, "depth": 24}`</td></tr></tbody></table>

### Set Json Object Field (Boolean)

Sets a true/false field on a JSON object.

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/47" type="video/mp4"> Your browser doesn't support embedded video. </source></video>

#### What it does

Same idea as the other Set variants, but the value being stored is a true/false.

#### Inputs

<table id="bkmrk-port-type-what-to-co-3"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node's **Execute** output.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The object to update.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The name of the field to set.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">Boolean (true/false)</td><td>The value to store under that name.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-3"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires after this node finishes.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The updated object with your field set.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The same name you passed in.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">Boolean</td><td>The same value you passed in.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonobject-input-%7B%22n-0"><tbody><tr><td style="white-space: nowrap;">**JsonObject** input</td><td>`{"name": "Crate", "locked": true}`</td></tr><tr><td style="white-space: nowrap;">**Name** input</td><td>`"visible"`</td></tr><tr><td style="white-space: nowrap;">**Value** input</td><td>`false`</td></tr><tr><td style="white-space: nowrap;">**JsonObject** output</td><td>`{"name": "Crate", "locked": true, "visible": false}`</td></tr></tbody></table>

### Set Json Object Field (JsonObject)

Sets a field whose value is another JSON object.

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/42" type="video/mp4"> Your browser doesn't support embedded video. </source></video>

#### What it does

Stores a JSON object as the value of a named field — useful for grouping related sub-fields together. The original outer object isn't modified; you get a new object with the nested one attached under your chosen name.

#### Inputs

<table id="bkmrk-port-type-what-to-co-4"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node's **Execute** output.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The outer object to update.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The name of the field to set.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">JSON object</td><td>The inner object to store under that name.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-4"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires after this node finishes.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The updated outer object with the inner object nested under your field name.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The same name you passed in.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">JSON object</td><td>The same inner object you passed in.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonobject-input-%7B%22u"><tbody><tr><td style="white-space: nowrap;">**JsonObject** input</td><td>`{"user": {"id": 7}}`</td></tr><tr><td style="white-space: nowrap;">**Name** input</td><td>`"config"`</td></tr><tr><td style="white-space: nowrap;">**Value** input</td><td>`{"dark": true}`</td></tr><tr><td style="white-space: nowrap;">**JsonObject** output</td><td>`{"user": {"id": 7}, "config": {"dark": true}}`</td></tr></tbody></table>

### Set Json Object Field (JsonArray)

Sets a field whose value is a JSON array.

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/41" type="video/mp4"> Your browser doesn't support embedded video. </source></video>

#### What it does

Stores a JSON array (a list) as the value of a named field — useful for fields that hold a collection of related items, like tags, scores, or coordinates.

#### Inputs

<table id="bkmrk-port-type-what-to-co-5"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node's **Execute** output.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The object to update.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The name of the field to set.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">JSON array</td><td>The array to store under that name. See the **JSON Arrays** page for nodes that build one.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-5"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires after this node finishes.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The updated object with the array stored under your field name.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The same name you passed in.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">JSON array</td><td>The same array you passed in.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonobject-input-%7B%22t"><tbody><tr><td style="white-space: nowrap;">**JsonObject** input</td><td>`{"title": "Project", "priority": 1}`</td></tr><tr><td style="white-space: nowrap;">**Name** input</td><td>`"tags"`</td></tr><tr><td style="white-space: nowrap;">**Value** input</td><td>`["urgent", "review"]`</td></tr><tr><td style="white-space: nowrap;">**JsonObject** output</td><td>`{"title": "Project", "priority": 1, "tags": ["urgent", "review"]}`</td></tr></tbody></table>

### Set Json Object Field (SceneNode)

Sets a field whose value is a scene node — an object in your SimLab scene like a robot, a part, or a marker.

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/43" type="video/mp4"> Your browser doesn't support embedded video. </source></video>

#### What it does

Stores a reference to a scene node under a named field. The reference points to the live object — not a copy — so other nodes that read this field later receive the actual scene node.

#### Inputs

<table id="bkmrk-port-type-what-to-co-6"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node's **Execute** output.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The object to update.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The name of the field to set.</td></tr><tr><td style="white-space: nowrap;">**SceneNode**</td><td style="white-space: nowrap;">Scene node</td><td>The scene node to reference under that name. Comes from a node like **Get Scene Node** or a previous step that produced one.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-6"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires after this node finishes.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The updated object with the scene node reference attached.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The same name you passed in.</td></tr><tr><td style="white-space: nowrap;">**SceneNode**</td><td style="white-space: nowrap;">Scene node</td><td>The same scene node you passed in.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonobject-input-%7B%22l"><tbody><tr><td style="white-space: nowrap;">**JsonObject** input</td><td>`{"label": "Robot Arm", "active": true}`</td></tr><tr><td style="white-space: nowrap;">**Name** input</td><td>`"target"`</td></tr><tr><td style="white-space: nowrap;">**SceneNode** input</td><td>&lt;Robot&gt; — a scene-node reference</td></tr><tr><td style="white-space: nowrap;">**JsonObject** output</td><td>`{"label": "Robot Arm", "active": true, "target": <Robot>}`</td></tr></tbody></table>

### Set Json Object Field (User)

Sets a field whose value is a User — a participant in a VR/AR session.

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/46" type="video/mp4"> Your browser doesn't support embedded video. </source></video>

#### What it does

Stores a reference to a User under a named field. The reference points to the live participant; other nodes that read this field later receive the actual User.

#### Inputs

<table id="bkmrk-port-type-what-to-co-7"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node's **Execute** output.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The object to update.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The name of the field to set.</td></tr><tr><td style="white-space: nowrap;">**User**</td><td style="white-space: nowrap;">User</td><td>The User to reference under that name.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-7"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires after this node finishes.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The updated object with the User reference attached.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The same name you passed in.</td></tr><tr><td style="white-space: nowrap;">**User**</td><td style="white-space: nowrap;">User</td><td>The same User you passed in.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonobject-input-%7B%22p"><tbody><tr><td style="white-space: nowrap;">**JsonObject** input</td><td>`{"project": "Atlas", "role": "admin"}`</td></tr><tr><td style="white-space: nowrap;">**Name** input</td><td>`"owner"`</td></tr><tr><td style="white-space: nowrap;">**User** input</td><td>&lt;alice&gt; — a User reference</td></tr><tr><td style="white-space: nowrap;">**JsonObject** output</td><td>`{"project": "Atlas", "role": "admin", "owner": <alice>}`</td></tr></tbody></table>

---

## Read a field

These five nodes all pull the value of a single field back out of a JSON object. You pick the field by its name. Each variant returns the value as a specific type — pick the one that matches what you stored.

The object isn't modified — the value is read out, the object stays the same.

### Get Json Object Field (String)

Reads one field from a JSON object as text.

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/50" type="video/mp4"> Your browser doesn't support embedded video. </source></video>

#### What it does

Returns the value of the field with the given name. Use this when that field's value is a piece of text.

#### Inputs

<table id="bkmrk-port-type-what-to-co-8"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node's **Execute** output.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The object to read from. Must not be empty.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>Which field to read. Names are case-sensitive.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-8"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires after this node finishes.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The same object you passed in.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The same name you asked for.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">Text</td><td>The value stored under that name.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonobject-input-%7B%22n-1"><tbody><tr><td style="white-space: nowrap;">**JsonObject** input</td><td>`{"name": "Sam", "age": 42, "city": "Portland"}`</td></tr><tr><td style="white-space: nowrap;">**Name** input</td><td>`"city"`</td></tr><tr><td style="white-space: nowrap;">**Value** output</td><td>`"Portland"`</td></tr></tbody></table>

### Get Json Object Field (Number)

Reads one field from a JSON object as a number.

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/52" type="video/mp4"> Your browser doesn't support embedded video. </source></video>

#### What it does

Returns the value of the field with the given name. Use this when that field's value is a number.

#### Inputs

<table id="bkmrk-port-type-what-to-co-9"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node's **Execute** output.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The object to read from. Must not be empty.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>Which field to read.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-9"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires after this node finishes.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The same object you passed in.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The same name you asked for.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">Number</td><td>The number stored under that name.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonobject-input-%7B%22w-0"><tbody><tr><td style="white-space: nowrap;">**JsonObject** input</td><td>`{"width": 1920, "height": 1080, "fps": 60}`</td></tr><tr><td style="white-space: nowrap;">**Name** input</td><td>`"height"`</td></tr><tr><td style="white-space: nowrap;">**Value** output</td><td>`1080`</td></tr></tbody></table>

### Get Json Object Field (Boolean)

Reads one field from a JSON object as a true/false value.

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/38" type="video/mp4"> Your browser doesn't support embedded video. </source></video>

#### What it does

Returns the value of the field with the given name. Use this when that field's value is a true/false.

#### Inputs

<table id="bkmrk-port-type-what-to-co-10"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node's **Execute** output.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The object to read from. Must not be empty.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>Which field to read.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-10"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires after this node finishes.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The same object you passed in.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The same name you asked for.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">Boolean</td><td>The true/false value stored under that name.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonobject-input-%7B%22v"><tbody><tr><td style="white-space: nowrap;">**JsonObject** input</td><td>`{"visible": true, "locked": false, "active": true}`</td></tr><tr><td style="white-space: nowrap;">**Name** input</td><td>`"locked"`</td></tr><tr><td style="white-space: nowrap;">**Value** output</td><td>`false`</td></tr></tbody></table>

### Get Json Object Field (JsonObject)

Reads one field from a JSON object as another JSON object (a nested object).

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/53" type="video/mp4"> Your browser doesn't support embedded video. </source></video>

#### What it does

Returns the value of the field with the given name. Use this when that field's value is itself a JSON object — for example a sub-section like `"config"` or `"user"`. Once you have the nested object, the other Read-a-field nodes can read its individual fields.

#### Inputs

<table id="bkmrk-port-type-what-to-co-11"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node's **Execute** output.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The outer object to read from. Must not be empty.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>Which field to read.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-11"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires after this node finishes.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The same outer object you passed in.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The same name you asked for.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">JSON object</td><td>The inner object stored under that name.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonobject-input-%7B%22u-0"><tbody><tr><td style="white-space: nowrap;">**JsonObject** input</td><td>`{"user": {"id": 7}, "config": {"dark": true}}`</td></tr><tr><td style="white-space: nowrap;">**Name** input</td><td>`"config"`</td></tr><tr><td style="white-space: nowrap;">**Value** output</td><td>`{"dark": true}`</td></tr></tbody></table>

### Get Json Object Field (JsonArray)

Reads one field from a JSON object as a JSON array (a list).

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/48" type="video/mp4"> Your browser doesn't support embedded video. </source></video>

#### What it does

Returns the value of the field with the given name. Use this when that field's value is a JSON array.

#### Inputs

<table id="bkmrk-port-type-what-to-co-12"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node's **Execute** output.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The object to read from. Must not be empty.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>Which field to read.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-12"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires after this node finishes.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The same object you passed in.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The same name you asked for.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">JSON array</td><td>The array stored under that name.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonobject-input-%7B%22s"><tbody><tr><td style="white-space: nowrap;">**JsonObject** input</td><td>`{"sizes": [10, 20], "colors": ["red", "blue"]}`</td></tr><tr><td style="white-space: nowrap;">**Name** input</td><td>`"colors"`</td></tr><tr><td style="white-space: nowrap;">**Value** output</td><td>`["red", "blue"]`</td></tr></tbody></table>

---

## Inspect

These two nodes don't read a specific field — they tell you *about* the object's structure. Use them when you don't know in advance what fields the object contains, or when you need to find out what type of value a field holds before reading it.

### ![Response_JsonObject_Names_Get.png](https://simlab-soft.com/help/uploads/images/gallery/2026-10/scaled-1680-/response-jsonobject-names-get.png) Get Json Object Names

Gives you the list of field names in the object.

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/49" type="video/mp4"> Your browser doesn't support embedded video. </source></video>

#### What it does

Returns each field name in the object, one after another. Handy when you want to step through every field using a loop construct or for-each pattern, or when you don't know what's in the object up front.

#### Inputs

<table id="bkmrk-port-type-what-to-co-13"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node's **Execute** output.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The object whose field names you want.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-13"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires after this node finishes.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The same object you passed in.</td></tr><tr><td style="white-space: nowrap;">**Names**</td><td style="white-space: nowrap;">Text</td><td>Each field name in turn.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonobject-input-%7B%22n-2"><tbody><tr><td style="white-space: nowrap;">**JsonObject** input</td><td>`{"name": "Sam", "age": 42, "city": "Portland"}`</td></tr><tr><td style="white-space: nowrap;">**Names** output</td><td>`"name", "age", "city"`</td></tr></tbody></table>

#### Tips

- **Use with Get.** Pair this with one of the **Get Json Object Field** nodes (or with **Get Json Field Type**) to inspect every field in turn.
- **Empty objects.** If the object has no fields, no names are produced.

### ![Response_JsonObject_FieldType_Get.png](https://simlab-soft.com/help/uploads/images/gallery/2026-10/scaled-1680-/response-jsonobject-fieldtype-get.png) Get Json Field Type

Tells you what kind of value a named field holds.

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/40" type="video/mp4"> Your browser doesn't support embedded video. </source></video>

#### What it does

Returns the type of the field's value as a short piece of text: `"String"`, `"Number"`, `"Boolean"`, `"JsonObject"`, or `"JsonArray"`. Use this when an object's fields can hold different kinds of values and you need to decide which **Get** node to use.

#### Inputs

<table id="bkmrk-port-type-what-to-co-14"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node's **Execute** output.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The object containing the field. Must not be empty.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>Which field to check.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-14"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires after this node finishes.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The same object you passed in.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The same name you asked for.</td></tr><tr><td style="white-space: nowrap;">**Type**</td><td style="white-space: nowrap;">Text</td><td>The type of the field's value, as a short name.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonobject-input-%7B%22n-3"><tbody><tr><td style="white-space: nowrap;">**JsonObject** input</td><td>`{"name": "Sam", "age": 42, "active": true}`</td></tr><tr><td style="white-space: nowrap;">**Name** input</td><td>`"age"`</td></tr><tr><td style="white-space: nowrap;">**Type** output</td><td>`"Number"`</td></tr></tbody></table>

---

## Convert

### ![Response_JsonObject_ToString.png](https://simlab-soft.com/help/uploads/images/gallery/2026-10/scaled-1680-/response-jsonobject-tostring.png) Json Object To String

Turns the entire object into a single piece of text.

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/54" type="video/mp4"> Your browser doesn't support embedded video. </source></video>

#### What it does

Produces a text representation of the whole object, written in JSON form. Useful when you need to save the object to a file, send it to another system, or put it somewhere that only accepts text.

The original object isn't modified — you get the same object back plus a text version.

#### Inputs

<table id="bkmrk-port-type-what-to-co-15"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Wire this from the previous node's **Execute** output.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The object to convert.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-15"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires after this node finishes.</td></tr><tr><td style="white-space: nowrap;">**JsonObject**</td><td style="white-space: nowrap;">JSON object</td><td>The same object you passed in.</td></tr><tr><td style="white-space: nowrap;">**Result**</td><td style="white-space: nowrap;">Text</td><td>The text version of the object.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonobject-input-%7B%22n-4"><tbody><tr><td style="white-space: nowrap;">**JsonObject** input</td><td>`{"name": "Alice", "score": 95}`</td></tr><tr><td style="white-space: nowrap;">**Result** output</td><td>`'{"name": "Alice", "score": 95}'`</td></tr></tbody></table>

#### Tips

- **Reverse direction.** To go back from text to an object, use **Create Json Object From String** at the top of this page.

---

## Related

- **JSON Arrays** — the matching page for working with ordered lists of items.