# RecursiveJsonSplitter

> **Class** in `langchain_text_splitters`

📖 [View in docs](https://reference.langchain.com/python/langchain-text-splitters/json/RecursiveJsonSplitter)

Splits JSON data into smaller, structured chunks while preserving hierarchy.

This class provides methods to split JSON data into smaller dictionaries or
JSON-formatted strings based on configurable maximum and minimum chunk sizes.
It supports nested JSON structures, optionally converts lists into dictionaries
for better chunking, and allows the creation of document objects for further use.

## Signature

```python
RecursiveJsonSplitter(
    self,
    max_chunk_size: int = 2000,
    min_chunk_size: int | None = None,
)
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `max_chunk_size` | `int` | No | The maximum size for a chunk. (default: `2000`) |
| `min_chunk_size` | `int \| None` | No | The minimum size for a chunk.  If `None`, defaults to the maximum chunk size minus 200, with a lower bound of 50. (default: `None`) |

## Constructors

```python
__init__(
    self,
    max_chunk_size: int = 2000,
    min_chunk_size: int | None = None,
) -> None
```

| Name | Type |
|------|------|
| `max_chunk_size` | `int` |
| `min_chunk_size` | `int \| None` |


## Properties

- `max_chunk_size`
- `min_chunk_size`

## Methods

- [`split_json()`](https://reference.langchain.com/python/langchain-text-splitters/json/RecursiveJsonSplitter/split_json)
- [`split_text()`](https://reference.langchain.com/python/langchain-text-splitters/json/RecursiveJsonSplitter/split_text)
- [`create_documents()`](https://reference.langchain.com/python/langchain-text-splitters/json/RecursiveJsonSplitter/create_documents)

---

[View source on GitHub](https://github.com/langchain-ai/langchain/blob/9f232caa7a8fe1ca042a401942d5d90d54ceb1a6/libs/text-splitters/langchain_text_splitters/json.py#L12)