DumpJson 1.0.1
dotnet add package DumpJson --version 1.0.1
NuGet\Install-Package DumpJson -Version 1.0.1
<PackageReference Include="DumpJson" Version="1.0.1" />
<PackageVersion Include="DumpJson" Version="1.0.1" />
<PackageReference Include="DumpJson" />
paket add DumpJson --version 1.0.1
#r "nuget: DumpJson, 1.0.1"
#:package DumpJson@1.0.1
#addin nuget:?package=DumpJson&version=1.0.1
#tool nuget:?package=DumpJson&version=1.0.1
DumpJson - write your objects to console/debug output via JSON instantly
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 | Versions 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. |
-
.NETStandard 2.0
- System.Text.Json (>= 9.0.9)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.