Skip to main content

JSON Format for Output

This document explains how to configure JSON output for any Monad output component that supports the JSON format.

Overview

Monad provides flexible JSON formatting options to structure your output data in various ways, including nested JSON objects, JSON arrays, and line-delimited JSON (JSONL). Each format serves different integration needs based on your downstream systems.

Format Types

Monad supports three JSON format types:

Format TypeDescriptionFile Extension
arrayOutputs data as a JSON array of objects (default).json
nestedWraps your data array inside a named root object.json
lineCreates line-delimited JSON (JSONL) with one object per line.jsonl

Configuration Options

When configuring JSON output in Monad, you need to specify:

{
"type": "[format_type]",
"key": "[root_key_name]"
}

Parameters

ParameterDescriptionRequiredDefault
typeThe format type: array, nested, or lineYes-
keyThe name of the root object key (required for nested format only)Only for nested format-

Format Examples

Array Format

The array format outputs data as a standard JSON array of objects. This is the default format if none is specified.

Configuration:

{
"type": "array"
}

Example Output:

[
{"name": "John", "age": 30},
{"name": "Alice", "age": 25}
]

Nested Format

The nested format wraps your data inside a named root object. This is useful when the receiving system expects a specific JSON structure.

Configuration:

{
"type": "nested",
"key": "users"
}

Example Output:

{
"users": [
{"name": "John", "age": 30},
{"name": "Alice", "age": 25}
]
}

Line Format (JSONL)

The line format creates line-delimited JSON with one object per line. This format is optimal for streaming and processing large datasets where each record can be handled independently.

Configuration:

{
"type": "line"
}

Example Output:

{"name": "John", "age": 30}
{"name": "Alice", "age": 25}

When to Use Each Format

  • Array Format: Use when you need a standard JSON array structure or when the downstream system expects a complete array of objects.

  • Nested Format: Use when your destination requires a specific root key containing the data array, such as when integrating with APIs that expect a particular JSON structure.

  • Line Format (JSONL): Use for large datasets or streaming applications where processing one record at a time is more efficient than loading the entire array. Also ideal for systems that support appending to existing files.

Tips and Best Practices

  1. Performance Considerations: For large datasets, the line format offers better performance as it allows processing one record at a time without loading the entire dataset into memory.

  2. File Size: The line format typically results in slightly