# `JSON`

**Applies to:** ✅ Data 360 SQL ✅ Tableau Hyper API

Parses a string and interprets it as a [JSON](/docs/data/data-cloud-query-guide/references/dc-sql-reference/json.md) value, validating that the string is well-formed JSON.

## Syntax

```sql
json(<string> [FORMAT JSON])
```

You can also parse a string into JSON with a [cast](/docs/data/data-cloud-query-guide/references/dc-sql-reference/type-conversion.md).

```sql
<string>::json
CAST(<string> AS json)
TRY_CAST(<string> AS json)
```

## Arguments

### Required

- `<string>`: The string to parse as JSON. The string must be a valid JSON document.

### Optional

- `FORMAT JSON`: Accepted for SQL-standard compatibility. It has no effect on the result.

## Returns

Returns a `json` value. Use the result to embed pre-formatted JSON into `json_array` or `json_object`, or wherever a `json` value is expected.

## Considerations

- The input string is validated as JSON. Invalid input is rejected with an `invalid JSON document` error.
- The cast forms `<string>::json` and `CAST(<string> AS json)` perform the same validation as the `json` constructor.
- Use `TRY_CAST(<string> AS json)` if you want to suppress validation errors.
- The `WITH UNIQUE KEYS` option from the SQL-standard, which would reject objects with duplicate keys, isn't supported.
- Parsing preserves the document's textual content, including insignificant whitespace.

## Examples

### Parse a JSON String

Interpret a string as a JSON value.

```sql
SELECT json('{"a":1}') AS result;
```

Returns `{"a":1}`.

### Parse with a Cast

A cast from a string performs the same validation.

```sql
SELECT '[]'::json AS result;
```

Returns `[]`.

### Embed Pre-Formatted JSON

Use the constructor to embed an existing document without escaping it.

```sql
SELECT json_object('a': 1, 'b': json('{"nested":true}')) AS result;
```

Returns `{"a":1,"b":{"nested":true}}`.

### Invalid JSON Is Rejected

Malformed input raises an error.

```sql
SELECT json('{"a": invalid}');
```

Raises an `invalid JSON document` error.

## Related Documentation

- [JSON Type](/docs/data/data-cloud-query-guide/references/dc-sql-reference/json.md)
- `[JSON_ARRAY](./json-array.md)` - Build a JSON array from a list of values.
- `[JSON_OBJECT](./json-object.md)` - Build a JSON object from key-value pairs.
- `[JSON_SCALAR](./json-scalar.md)` - Convert a scalar value to JSON.
- [Type Conversions](/docs/data/data-cloud-query-guide/references/dc-sql-reference/type-conversion.md) - Type casting and coercion.
