# Data Types \ Json \  JsonArray

A JSON array is an ordered list of items — for example `["apple", "cherry", "banana"]`. The nodes on this page let you build arrays, add to them, read items back out, inspect them, and turn them into plain text you can store, send, or print.

## What's on this page

- **Create** — start a brand-new array, either empty or from a piece of text.
- **Add a value** — append an item to the end of an existing array (one node per item type).
- **Read an element** — pull an item back out by its position (one node per item type).
- **Inspect** — find out the size, the valid positions, or the type of an item.
- **Convert** — turn the whole array into a single piece of text.

**About indexes:** positions in a JSON array start at **1**, not 0. The first item is at index 1, the second at index 2, and so on.

---

## Create

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

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

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

#### What it does

This node produces a brand-new JSON array with nothing in it: `[]`. From there you'd typically wire it into one or more **Add Json Array Value** nodes to fill it with items.

#### 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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>A new, empty array `[]`.</td></tr></tbody></table>

#### Tips

- **Chain it.** Wire this node's **JsonArray** output into the **JsonArray** input of an **Add Json Array Value** node to put the first item in.
- **Or start from text.** If you already have your data as a string like `[1, 2, 3]`, use **Create Json Array From String** instead.

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

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

<video autoplay="autoplay" height="auto" loop="loop" muted="" width="100%"> <source src="https://simlab-soft.com/help/attachments/31" 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 array 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 array — that is, start with `[` and end with `]`, with items separated by commas.</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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The parsed array.</td></tr></tbody></table>

#### Example

<table id="bkmrk-string-input-%5B1%2C-2%2C-"><tbody><tr><td style="white-space: nowrap;">**String** input</td><td>`[1, 2, 3]`</td></tr><tr><td style="white-space: nowrap;">**JsonArray** output</td><td>`[1, 2, 3]` — now a real JSON array</td></tr></tbody></table>

#### Tips

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

## Add a value

These five nodes all do the same thing — add a value to the end of a JSON array — but each one accepts a different kind of value. Pick the one that matches what you're adding.

None of them modify the original array. What comes out is a new array with the extra item on the end.

### Add Json Array Value (String)

Adds a piece of text to the end of a JSON array.

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

#### What it does

This node takes a JSON array and a piece of text, and gives you back a new array with the text added on the end.

#### 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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The list you want to add to. Often comes from a **Create Json Array** node or from a previous step.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">Text</td><td>The piece of text you want to append.</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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The updated array with your text added at the end.</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-jsonarray-input-%5B%22ap"><tbody><tr><td style="white-space: nowrap;">**JsonArray** input</td><td>`["apple", "cherry"]`</td></tr><tr><td style="white-space: nowrap;">**Value** input</td><td>`"banana"`</td></tr><tr><td style="white-space: nowrap;">**JsonArray** output</td><td>`["apple", "cherry", "banana"]`</td></tr></tbody></table>

### Add Json Array Value (Number)

Adds a number to the end of a JSON array.

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

#### What it does

Same as the text version, but for numbers. 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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The list you want to add to.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">Number</td><td>The number you want to append.</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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The updated array with your number added at the end.</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-jsonarray-input-%5B20%2C"><tbody><tr><td style="white-space: nowrap;">**JsonArray** input</td><td>`[20, -5]`</td></tr><tr><td style="white-space: nowrap;">**Value** input</td><td>`3`</td></tr><tr><td style="white-space: nowrap;">**JsonArray** output</td><td>`[20, -5, 3]`</td></tr></tbody></table>

### Add Json Array Value (Boolean)

Adds a true/false value to the end of a JSON array.

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

#### What it does

Same idea as the other Add variants, but the value being appended 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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The list you want to add to.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">Boolean (true/false)</td><td>The value you want to append.</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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The updated array with the true/false added at the end.</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-jsonarray-input-%5Btru"><tbody><tr><td style="white-space: nowrap;">**JsonArray** input</td><td>`[true, false]`</td></tr><tr><td style="white-space: nowrap;">**Value** input</td><td>`true`</td></tr><tr><td style="white-space: nowrap;">**JsonArray** output</td><td>`[true, false, true]`</td></tr></tbody></table>

### Add Json Array Value (JsonObject)

Adds a JSON object to the end of a JSON array.

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

#### What it does

Useful for building a list of records — for example a list of scores, settings, or scene items, where each entry has several named fields.

#### 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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The list you want to add to.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">JSON object</td><td>The object you want to append. See the **JSON Objects** page for nodes that build one.</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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The updated array with the object added at the end.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">JSON object</td><td>The same object you passed in.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonarray-input-%5B%7B%22s"><tbody><tr><td style="white-space: nowrap;">**JsonArray** input</td><td>`[{"score": 10}]`</td></tr><tr><td style="white-space: nowrap;">**Value** input</td><td>`{"score": 8}`</td></tr><tr><td style="white-space: nowrap;">**JsonArray** output</td><td>`[{"score": 10}, {"score": 8}]`</td></tr></tbody></table>

### Add Json Array Value (JsonArray)

Adds another JSON array as a single entry — producing a nested list.

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

#### What it does

The inner array is added as *one* item. The outer array's size grows by one regardless of how many items are inside the array you're adding. This is how you build grids, rows-of-rows, or any nested structure.

#### 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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The outer list you want to add to.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">JSON array</td><td>The array to add as one entry inside the outer 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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The updated outer array with the inner array added at the end.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">JSON array</td><td>The same inner array you passed in.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonarray-input-%5B%5B7%2C"><tbody><tr><td style="white-space: nowrap;">**JsonArray** input</td><td>`[[7, 4]]`</td></tr><tr><td style="white-space: nowrap;">**Value** input</td><td>`[9, 2]`</td></tr><tr><td style="white-space: nowrap;">**JsonArray** output</td><td>`[[7, 4], [9, 2]]`</td></tr></tbody></table>

---

## Read an element

These five nodes all pull a single item back out of a JSON array. You pick the item by its position (its **Index**). Each variant returns the value as a specific type — pick the one that matches what you stored.

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

### Get Json Array Element (String)

Reads one item from a JSON array as text.

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

#### What it does

Returns the item at the position you specify. Use this when the item at that position is a piece of text.

#### 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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The array to read from. Must not be empty.</td></tr><tr><td style="white-space: nowrap;">**Index**</td><td style="white-space: nowrap;">Integer</td><td>Which position to read. The first item is at `1`.</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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The same array you passed in.</td></tr><tr><td style="white-space: nowrap;">**Index**</td><td style="white-space: nowrap;">Integer</td><td>The same position you asked for.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">Text</td><td>The item at that position.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonarray-input-%5B%22ap-0"><tbody><tr><td style="white-space: nowrap;">**JsonArray** input</td><td>`["apple", "banana", "cherry", "avocado"]`</td></tr><tr><td style="white-space: nowrap;">**Index** input</td><td>`3`</td></tr><tr><td style="white-space: nowrap;">**Value** output</td><td>`"cherry"`</td></tr></tbody></table>

### Get Json Array Element (Number)

Reads one item from a JSON array as a number.

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

#### What it does

Returns the item at the position you specify. Use this when the item at that position is a number.

#### 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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The array to read from. Must not be empty.</td></tr><tr><td style="white-space: nowrap;">**Index**</td><td style="white-space: nowrap;">Integer</td><td>Which position to read. Starts at 1.</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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The same array you passed in.</td></tr><tr><td style="white-space: nowrap;">**Index**</td><td style="white-space: nowrap;">Integer</td><td>The same position you asked for.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">Number</td><td>The number at that position.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonarray-input-%5B12%2C"><tbody><tr><td style="white-space: nowrap;">**JsonArray** input</td><td>`[12, 47, 88, 103, 256, 411]`</td></tr><tr><td style="white-space: nowrap;">**Index** input</td><td>`5`</td></tr><tr><td style="white-space: nowrap;">**Value** output</td><td>`256`</td></tr></tbody></table>

### Get Json Array Element (Boolean)

Reads one item from a JSON array as a true/false value.

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

#### What it does

Returns the item at the position you specify. Use this when the item at that position is a true/false value.

#### 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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The array to read from. Must not be empty.</td></tr><tr><td style="white-space: nowrap;">**Index**</td><td style="white-space: nowrap;">Integer</td><td>Which position to read. Starts at 1.</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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The same array you passed in.</td></tr><tr><td style="white-space: nowrap;">**Index**</td><td style="white-space: nowrap;">Integer</td><td>The same position 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 at that position.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonarray-input-%5Btru-0"><tbody><tr><td style="white-space: nowrap;">**JsonArray** input</td><td>`[true, false, true, true, false, false, true]`</td></tr><tr><td style="white-space: nowrap;">**Index** input</td><td>`6`</td></tr><tr><td style="white-space: nowrap;">**Value** output</td><td>`false`</td></tr></tbody></table>

### Get Json Array Element (JsonObject)

Reads one item from a JSON array as a JSON object.

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

#### What it does

Returns the item at the position you specify. Use this when each item in the array is a JSON object (a record with named fields). Once you have the object, the nodes on the **JSON Objects** page can read individual fields.

#### 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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The array to read from. Must not be empty.</td></tr><tr><td style="white-space: nowrap;">**Index**</td><td style="white-space: nowrap;">Integer</td><td>Which position to read. Starts at 1.</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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The same array you passed in.</td></tr><tr><td style="white-space: nowrap;">**Index**</td><td style="white-space: nowrap;">Integer</td><td>The same position you asked for.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">JSON object</td><td>The object at that position.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonarray-input-%5B%7B%22i"><tbody><tr><td style="white-space: nowrap;">**JsonArray** input</td><td>`[{"id": 101}, {"id": 102}, {"id": 103}, {"id": 104}, {"id": 105}]`</td></tr><tr><td style="white-space: nowrap;">**Index** input</td><td>`4`</td></tr><tr><td style="white-space: nowrap;">**Value** output</td><td>`{"id": 104}`</td></tr></tbody></table>

### Get Json Array Element (JsonArray)

Reads one item from a JSON array as another JSON array (a nested array).

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

#### What it does

Returns the item at the position you specify. Use this when each item in the outer array is itself an array — for example a grid or a list of points.

#### 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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The outer array to read from. Must not be empty.</td></tr><tr><td style="white-space: nowrap;">**Index**</td><td style="white-space: nowrap;">Integer</td><td>Which position to read. Starts at 1.</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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The same outer array you passed in.</td></tr><tr><td style="white-space: nowrap;">**Index**</td><td style="white-space: nowrap;">Integer</td><td>The same position you asked for.</td></tr><tr><td style="white-space: nowrap;">**Value**</td><td style="white-space: nowrap;">JSON array</td><td>The inner array at that position.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonarray-input-%5B%5B10"><tbody><tr><td style="white-space: nowrap;">**JsonArray** input</td><td>`[[10, 20], [30, 40], [50, 60], [70, 80], [90, 100]]`</td></tr><tr><td style="white-space: nowrap;">**Index** input</td><td>`4`</td></tr><tr><td style="white-space: nowrap;">**Value** output</td><td>`[70, 80]`</td></tr></tbody></table>

---

## Inspect

These three nodes don't read items out of the array — they tell you *about* it. Use them when you need to know how big the array is, what positions are valid, or what kind of item is at a given position.

### ![Response_JsonArray_Size_Get.png](https://simlab-soft.com/help/uploads/images/gallery/2026-10/scaled-1680-/response-jsonarray-size-get.png) Get Json Array Size

Tells you how many items are in the array.

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

#### What it does

Returns the total number of items as a number. An empty array returns `0`.

#### 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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The array to measure.</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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The same array you passed in.</td></tr><tr><td style="white-space: nowrap;">**Size**</td><td style="white-space: nowrap;">Number</td><td>How many items the array contains.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonarray-input-%5B%22re"><tbody><tr><td style="white-space: nowrap;">**JsonArray** input</td><td>`["red", "green", "blue"]`</td></tr><tr><td style="white-space: nowrap;">**Size** output</td><td>`3`</td></tr></tbody></table>

### ![Response_JsonArray_Indices_Get.png](https://simlab-soft.com/help/uploads/images/gallery/2026-10/scaled-1680-/response-jsonarray-indices-get.png) Get Json Array Indices

Gives you the list of valid positions in the array.

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

#### What it does

Returns each valid index in the array, one after another — `1, 2, 3, …` up to the array's size. Handy when you want to step through every item using a loop construct or for-each pattern.

#### 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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The array whose positions you want.</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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The same array you passed in.</td></tr><tr><td style="white-space: nowrap;">**Indices**</td><td style="white-space: nowrap;">Integer</td><td>Each valid position in turn (`1`, then `2`, then `3`, …).</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonarray-input-%5B%22re-0"><tbody><tr><td style="white-space: nowrap;">**JsonArray** input</td><td>`["red", "green", "blue"]`</td></tr><tr><td style="white-space: nowrap;">**Indices** output</td><td>`1, 2, 3`</td></tr></tbody></table>

#### Tips

- **Use with Get.** Pair this with one of the **Get Json Array Element** nodes to read every item in turn.
- **Empty arrays.** If the array is empty, no indices are produced.

### ![Response_JsonArray_Type_Get.png](https://simlab-soft.com/help/uploads/images/gallery/2026-10/scaled-1680-/response-jsonarray-type-get.png) Get Json Array Element Type

Tells you what kind of item is stored at a given position.

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

#### What it does

Returns the type of the item at the position you specify, as a short piece of text: `"String"`, `"Number"`, `"Boolean"`, `"JsonObject"`, or `"JsonArray"`. Use this when an array can hold different kinds of items and you need to decide which **Get** node to use.

#### 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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The array containing the item. Must not be empty.</td></tr><tr><td style="white-space: nowrap;">**Index**</td><td style="white-space: nowrap;">Integer</td><td>Which position to check. Starts at 1.</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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The same array you passed in.</td></tr><tr><td style="white-space: nowrap;">**Index**</td><td style="white-space: nowrap;">Integer</td><td>The same position 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 item at that position, as a short name.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonarray-input-%5B3.1"><tbody><tr><td style="white-space: nowrap;">**JsonArray** input</td><td>`[3.14, 2.71, 1.41, 1.62, 0.57, 6.28]`</td></tr><tr><td style="white-space: nowrap;">**Index** input</td><td>`5`</td></tr><tr><td style="white-space: nowrap;">**Type** output</td><td>`"Number"`</td></tr></tbody></table>

---

## Convert

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

Turns the entire array into a single piece of text.

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

#### What it does

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

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

#### 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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The array to convert.</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;">**JsonArray**</td><td style="white-space: nowrap;">JSON array</td><td>The same array 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 array.</td></tr></tbody></table>

#### Example

<table id="bkmrk-jsonarray-input-%5B%22re-1"><tbody><tr><td style="white-space: nowrap;">**JsonArray** input</td><td>`["red", "green", "blue"]`</td></tr><tr><td style="white-space: nowrap;">**Result** output</td><td>`'["red", "green", "blue"]'`</td></tr></tbody></table>

#### Tips

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

---

## Related

- **JSON Objects** — the matching page for working with records that have named fields.