_json_split() — langchain Function Reference
Architecture documentation for the _json_split() function in json.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD d81ccdd5_8091_6de6_425e_3dba9ac5dc9f["_json_split()"] 6fcdab9c_3ecd_51f0_a2ae_3b0c8bfac048["RecursiveJsonSplitter"] d81ccdd5_8091_6de6_425e_3dba9ac5dc9f -->|defined in| 6fcdab9c_3ecd_51f0_a2ae_3b0c8bfac048 d81ccdd5_8091_6de6_425e_3dba9ac5dc9f["_json_split()"] d81ccdd5_8091_6de6_425e_3dba9ac5dc9f -->|calls| d81ccdd5_8091_6de6_425e_3dba9ac5dc9f e3fb30a1_bf0b_b803_4160_e962db65ecfe["split_json()"] e3fb30a1_bf0b_b803_4160_e962db65ecfe -->|calls| d81ccdd5_8091_6de6_425e_3dba9ac5dc9f 94b9fce8_9d5d_edc5_43e5_d5f5c75c727e["_json_size()"] d81ccdd5_8091_6de6_425e_3dba9ac5dc9f -->|calls| 94b9fce8_9d5d_edc5_43e5_d5f5c75c727e 100a8874_86d6_7aab_05cd_e0ff79bf9bed["_set_nested_dict()"] d81ccdd5_8091_6de6_425e_3dba9ac5dc9f -->|calls| 100a8874_86d6_7aab_05cd_e0ff79bf9bed d81ccdd5_8091_6de6_425e_3dba9ac5dc9f["_json_split()"] d81ccdd5_8091_6de6_425e_3dba9ac5dc9f -->|calls| d81ccdd5_8091_6de6_425e_3dba9ac5dc9f style d81ccdd5_8091_6de6_425e_3dba9ac5dc9f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/text-splitters/langchain_text_splitters/json.py lines 85–114
def _json_split(
self,
data: Any, # noqa: ANN401
current_path: list[str] | None = None,
chunks: list[dict[str, Any]] | None = None,
) -> list[dict[str, Any]]:
"""Split json into maximum size dictionaries while preserving structure."""
current_path = current_path or []
chunks = chunks if chunks is not None else [{}]
if isinstance(data, dict):
for key, value in data.items():
new_path = [*current_path, key]
chunk_size = self._json_size(chunks[-1])
size = self._json_size({key: value})
remaining = self.max_chunk_size - chunk_size
if size < remaining:
# Add item to current chunk
self._set_nested_dict(chunks[-1], new_path, value)
else:
if chunk_size >= self.min_chunk_size:
# Chunk is big enough, start a new chunk
chunks.append({})
# Iterate
self._json_split(value, new_path, chunks)
else:
# handle single item
self._set_nested_dict(chunks[-1], current_path, data)
return chunks
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does _json_split() do?
_json_split() is a function in the langchain codebase, defined in libs/text-splitters/langchain_text_splitters/json.py.
Where is _json_split() defined?
_json_split() is defined in libs/text-splitters/langchain_text_splitters/json.py at line 85.
What does _json_split() call?
_json_split() calls 3 function(s): _json_size, _json_split, _set_nested_dict.
What calls _json_split()?
_json_split() is called by 2 function(s): _json_split, split_json.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free