NPipeline.Connectors.Json
0.32.0
dotnet add package NPipeline.Connectors.Json --version 0.32.0
NuGet\Install-Package NPipeline.Connectors.Json -Version 0.32.0
<PackageReference Include="NPipeline.Connectors.Json" Version="0.32.0" />
<PackageVersion Include="NPipeline.Connectors.Json" Version="0.32.0" />
<PackageReference Include="NPipeline.Connectors.Json" />
paket add NPipeline.Connectors.Json --version 0.32.0
#r "nuget: NPipeline.Connectors.Json, 0.32.0"
#:package NPipeline.Connectors.Json@0.32.0
#addin nuget:?package=NPipeline.Connectors.Json&version=0.32.0
#tool nuget:?package=NPipeline.Connectors.Json&version=0.32.0
NPipeline JSON Connector
NPipeline JSON Connector provides source and sink nodes for reading and writing JSON files using System.Text.Json. This package enables seamless integration of JSON data processing into your NPipeline workflows with configurable parsing options and type-safe operations.
About NPipeline
NPipeline is a high-performance, extensible data processing framework for .NET that enables developers to build scalable and efficient pipeline-based applications. It provides a rich set of components for data transformation, aggregation, branching, and parallel processing, with built-in support for resilience patterns and error handling.
Installation
dotnet add package NPipeline.Connectors.Json
Requirements
- .NET 8.0, 9.0, or 10.0
- System.Text.Json 9.0.0+ (automatically included as a dependency)
- NPipeline.Connectors (automatically included as a dependency)
Features
- JSON Source Node: Read JSON files and deserialize to strongly-typed objects
- JSON Sink Node: Serialize objects to JSON format and write to files
- System.Text.Json Integration: Leverages modern System.Text.Json library for reliable JSON processing
- Multiple JSON Formats: Support for both JSON array and newline-delimited JSON (NDJSON) formats
- Configurable Options: Customize naming policies, case sensitivity, and indentation
- Type-Safe Operations: Compile-time safety with generic type parameters
- Storage Abstraction: Works with pluggable storage providers for flexible file access
- Streaming Processing: Memory-efficient streaming for large JSON files
- Row-Level Error Handling: Opt-in handler to decide whether to skip or fail on mapping errors
Configuration Options
JsonConfiguration
The JsonConfiguration class provides configuration options for JSON operations:
| Property | Type | Default | Description |
|---|---|---|---|
BufferSize |
int |
4096 |
Buffer size for stream operations |
Format |
JsonFormat |
Array |
JSON format (Array or NewlineDelimited) |
WriteIndented |
bool |
false |
Whether to format JSON output with indentation |
PropertyNameCaseInsensitive |
bool |
true |
Whether property name comparison is case-insensitive |
PropertyNamingPolicy |
JsonPropertyNamingPolicy |
LowerCase |
Naming policy for JSON property names |
RowErrorHandler |
Func<Exception, JsonRow, bool>? |
null |
Handler for row mapping errors |
JsonFormat
The JsonFormat enum specifies the format of JSON data:
- Array: JSON data is structured as a JSON array containing JSON objects (default)
- NewlineDelimited: JSON data is structured as newline-delimited JSON (NDJSON)
JsonPropertyNamingPolicy
The JsonPropertyNamingPolicy enum specifies the naming policy for JSON property names:
- LowerCase: Property names are converted to lowercase (default)
- CamelCase: Property names are converted to camelCase
- SnakeCase: Property names are converted to snake_case
- PascalCase: Property names are converted to PascalCase
- AsIs: Property names are used as-is without transformation
JsonRow
The JsonRow readonly struct provides efficient, read-only access to JSON object properties:
TryGet<T>(string name, out T? value, T? defaultValue = default): Try to read a property by nameGet<T>(string name, T? defaultValue = default): Read a property by nameHasProperty(string name): Check if a property existsGetNested<T>(string path, T? defaultValue = default): Read a nested property using dot notation
JsonMappingException
The JsonMappingException is thrown when a JSON mapping error occurs, such as:
- A required property is missing from the JSON object
- A property value cannot be converted to the target type
- A nested property path is invalid or does not exist
- The JSON structure does not match the expected schema
Related Packages
- NPipeline - Core pipeline framework
- NPipeline.Connectors - Storage abstractions and base connectors
- NPipeline.Extensions.DependencyInjection - Dependency injection integration
License
MIT License - see LICENSE file for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- NPipeline.Connectors (>= 0.32.0)
- NPipeline.StorageProviders (>= 0.32.0)
-
net8.0
- NPipeline.Connectors (>= 0.32.0)
- NPipeline.StorageProviders (>= 0.32.0)
- System.Text.Json (>= 10.0.3)
-
net9.0
- NPipeline.Connectors (>= 0.32.0)
- NPipeline.StorageProviders (>= 0.32.0)
- System.Text.Json (>= 10.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.32.0 | 65 | 3/11/2026 |
| 0.31.1 | 78 | 3/6/2026 |
| 0.31.0 | 75 | 3/6/2026 |
| 0.30.0 | 82 | 3/5/2026 |
| 0.29.0 | 80 | 3/5/2026 |
| 0.28.0 | 79 | 3/4/2026 |
| 0.27.0 | 77 | 3/4/2026 |
| 0.26.0 | 79 | 3/3/2026 |
| 0.25.0 | 86 | 3/2/2026 |
| 0.24.0 | 82 | 3/2/2026 |
| 0.23.0 | 85 | 2/28/2026 |
| 0.22.0 | 87 | 2/28/2026 |
| 0.21.0 | 84 | 2/28/2026 |
| 0.20.1 | 88 | 2/27/2026 |
| 0.20.0 | 87 | 2/27/2026 |
| 0.19.0 | 83 | 2/26/2026 |
| 0.18.2 | 84 | 2/26/2026 |
| 0.18.1 | 82 | 2/26/2026 |
| 0.18.0 | 86 | 2/25/2026 |
| 0.17.0 | 83 | 2/25/2026 |