DumpJson 1.0.1

dotnet add package DumpJson --version 1.0.1
                    
NuGet\Install-Package DumpJson -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DumpJson" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DumpJson" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="DumpJson" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DumpJson --version 1.0.1
                    
#r "nuget: DumpJson, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package DumpJson@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DumpJson&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=DumpJson&version=1.0.1
                    
Install as a Cake Tool

DumpJson - write your objects to console/debug output via JSON instantly

License: MIT

DumpJson is a lightweight .NET library allows to call .Dump() on any object to instantly serialize and output it to your console or debug window with formatted JSON.

Features

  • Dead Simple - Just add .Dump() to any object
  • JSON Output - Automatic JSON serialization with indentation
  • Smart Routing - Outputs to Console and/or Debug window automatically
  • Optional Labels - Add a label to your output for context
  • Configurable - Customize JSON serialization options
  • Lightweight - ~60 lines of code (currently), System.Text.Json is the only dependency
  • .NET Standard 2.0 - Works everywhere (.NET Framework, .NET Core, .NET 5+)

Installation

dotnet add package DumpJson

Or via Package Manager Console:

Install-Package DumpJson

Quick Start

using DumpJson;

var person = new Person 
{ 
    Name = "John Doe", 
    Age = 30,
    Email = "john@example.com"
};

// View the output in your console or debug window via .Dump()
person.Dump();

// Apply a label if needed
person.Dump("Person response");

Standard Output Example:

{
  "Name": "John Doe",
  "Age": 30,
  "Email": "john@example.com"
}

Labeled Output Example:

Person response
{
  "Name": "John Doe",
  "Age": 30,
  "Email": "john@example.com"
}

Use Cases

Quick Debugging

// Inspect API responses
var response = await httpClient.GetFromJsonAsync<User>(url);
response.Dump("API Response");

Chain Inspection

// See data at each transformation step
var result = data
    .Where(x => x.IsActive)
    .Dump("After Filter")
    .Select(x => new { x.Id, x.Name })
    .Dump("After Projection")
    .ToList();

Unit Test Diagnostics

[Fact]
public void TestComplexObject()
{
    var result = CalculateComplexResult();
    result.Dump("Test Result"); // See exactly what you got
    Assert.Equal(expected, result);
}

Configuration

Control where the output is sent or customize JSON serialization and output behavior to your needs:

using System.Text.Json;
using DumpJson;

// Force console output on/off (null = auto-detect)
DumpJson.Settings.WriteToConsoleOutput = true;  // Always write to console
DumpJson.Settings.WriteToConsoleOutput = false; // Never write to console
DumpJson.Settings.WriteToConsoleOutput = null;  // Auto-detect (default)

// Force debug output on/off (null = auto-detect)
DumpJson.Settings.WriteToDebugOutput = true;  // Always write to debug output
DumpJson.Settings.WriteToDebugOutput = false; // Never write to debug output
DumpJson.Settings.WriteToDebugOutput = null;  // Auto-detect (default)

// Configure global JSON serialization settings (defaults to indented formatting)
DumpJson.Settings.JsonSerializerOptions = new JsonSerializerOptions
{
    PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
    DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull
};

// Now all .Dump() calls use your custom settings
myObject.Dump();

How It Works

DumpJson automatically detects your runtime environment and outputs accordingly:

  • Console Available? → Outputs to Console.WriteLine()
  • Debugger Attached? → Outputs to Debug.WriteLine()
  • Both Available? → Outputs to both!
  • Neither Available? → Silently does nothing (no exceptions)

You can override this auto-detection behavior using DumpJson.Settings.WriteToConsoleOutput and DumpJson.Settings.WriteToDebugOutput to force output on or off regardless of the environment.

Feedback

Found a bug or have a feature request? Open an issue!

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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 was computed.  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 was computed.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
1.0.1 59 10/4/2025
1.0.0 80 10/3/2025