> ## Documentation Index
> Fetch the complete documentation index at: https://docs.e6data.com/llms.txt
> Use this file to discover all available pages before exploring further.

# JSON_TUPLE

> Extracts JSON paths into generated STRING columns.

<div className="e6-meta"><span className="e6-eyebrow e6-eyebrow--quiet">Table function</span></div>

NULL/invalid JSON, JSON null and missing paths produce NULL output values; the row generator still emits one output row per input row.

## Syntax

### Table

```sql theme={"theme":{"light":"github-light","dark":"github-dark"}}
JSON_TUPLE(json, path1 [, path2 ...])
```

## Arguments

| Name | Type | Required | Description |
| - | - | - | - |
| json | STRING | Yes | JSON text. |
| path1 | STRING | Yes | First JSON path to extract. |
| additional\_paths | STRING | No | Further paths, one output column per path. This argument can repeat. |

## Returns

* Type: TABLE of STRING columns
* NULL behavior: NULL/invalid JSON, JSON null and missing paths produce NULL output values; the row generator still emits one output row per input row.
* Empty input: The function has no collection-row suppression; an empty or invalid JSON text yields NULL columns.
* Shape: Exactly one output STRING column per requested path and one generated row per input row.
* Ordering: One row is associated with each input row; SQL output order requires ORDER BY.

## Properties

| Property | Value |
| - | - |
| Deterministic | Yes |
| Supports window usage | No |
| Exact result | Yes |

## Usage notes

* Nested paths and array wildcards are supported. Dot-name fields are matched without regard to case; quoted names in brackets are case-sensitive.
* Scalar strings are unquoted; objects/arrays are JSON text.
* Deterministic: The same inputs and settings produce the same result.

## Examples

### Typical behavior

```sql theme={"theme":{"light":"github-light","dark":"github-dark"}}
SELECT first_value, ids, missing_value FROM TABLE(json_tuple('{"Store":{"items":[{"id":10},{"id":20}]}}', 'store.items[1].id', 'store.items[*].id', 'missing')) AS t(first_value, ids, missing_value);
```

| first\_value | ids | missing\_value |
| - | - | - |
| 20 | \[10,20] | NULL |

### Read text and boolean values

```sql theme={"theme":{"light":"github-light","dark":"github-dark"}}
SELECT name, active FROM TABLE(json_tuple('{"name":"Ada","active":true}', 'name', 'active')) AS t(name, active);
```

| name | active |
| - | - |
| Ada | true |

## Related functions

* [json\_extract\_scalar](/query/sql/functions/json/json_extract_scalar)
* [get\_json\_object](/query/sql/functions/json/get_json_object)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.