Vestigium.Helpers.Json 1.0.1

dotnet add package Vestigium.Helpers.Json --version 1.0.1
                    
NuGet\Install-Package Vestigium.Helpers.Json -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="Vestigium.Helpers.Json" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Vestigium.Helpers.Json" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Vestigium.Helpers.Json" />
                    
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 Vestigium.Helpers.Json --version 1.0.1
                    
#r "nuget: Vestigium.Helpers.Json, 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 Vestigium.Helpers.Json@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=Vestigium.Helpers.Json&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Vestigium.Helpers.Json&version=1.0.1
                    
Install as a Cake Tool

Vestigium.Helpers.Json

System.Text.Json helpers for payload documents and JSONL. Pretty + camelCase for .json. Pointer and dotted path. An edit session so you can see the RFC 6902 patch before disk changes.

Not the audit logger. Not FileIo. One path, 64 KiB streams.

Identity

Field Value
Package Vestigium.Helpers.Json 1.0.1
TFM net10.0
APPID Json (JsonCatalog.AppId)
EVENTID Reserved 13500–13999 (used through 13640)
Depends on Vestigium.Logging
License MIT
Contract 002 -- Requirements Document

Consume

<PackageReference Include="Vestigium.Helpers.Json" Version="1.0.1" />
using Vestigium.Helpers.Json;

var doc = JsonHelper.Open(path);
doc.Snapshot();
doc.Set("network.timeoutSeconds", 15);
var patch = doc.Diff();          // RFC 6902 — show it; do not log values
doc.Commit();
doc.Save();

JSONL: JsonHelper.OpenJsonl(path) then AppendRecord / Record(i) / Save.

Compare two files: JsonHelper.Compare(leftPath, rightPath). Same kind. Diff only.

Surface

Call Returns Notes
Identity / Probe string In-memory only. Probe does not write the export folder.
ToJson / FromJson string / T RFC 8259. No BOM. FromJson honors JsonReadOptions.MaxDepth (default 64).
Parse(string) / Parse(Stream) / Parse(ReadOnlySpan<byte>) JsonNode RFC 8259. JSON null is not a document root. All three honor the 32 MiB cap. Stream must be seekable.
Create / Open / OpenJsonl / OpenExport JsonSession Open is one .json document; a .jsonl path is rejected. Create("*.jsonl") starts an empty list.
WriteFile void Collision default Fail. Atomic default true. 32 MiB document cap. Dest is never the overflow file.
Compare JsonPatch Two payload paths of the same kind. JSONL compared as arrays. Diff only — no Apply. Also JsonPatch.Compare(from, to).
DefaultExportDirectory / NewExportPath string Path only. Does not create the file.
session.Get / TryGet / Set T / bool / void /a/b and a.b are the same member. Get miss throws. Get and TryGet do not log.
AppendRecord / Record / RecordCount void / node / int JSONL only.
Snapshot / Diff / Commit / Revert / Cancel void / JsonPatch / void Disk sees committed only.
Save / SaveAs / SaveWorking path string SaveWorking writes working without Commit.
JsonCatalog.Register(cfg) void Host-only, during VestigiumLogger.Initialize.

Default export: %DESKTOP%\\Vestigium\\Exports\\Json\\. Tests override JsonTestHooks.ExportRoot. Probe never writes it.

Rules that do not move

  • RFC 8259 only. No comments, no trailing commas, no BOM.
  • Pretty + camelCase for .json. JSONL Save is compact (one value + newline).
  • Collision default Fail. No UniqueName here — call FileIo in the host.
  • Object member compare is ordinal: network.Timeout and network.timeout are two keys. Hosts that want Windows-ish keys call FileIo UniqueName, not this package.
  • Get of a missing path throws KeyNotFoundException. TryGet returns false. Get is quiet in the log.
  • Never log payload bodies, field values, PEM, or Exception objects.
  • The library never calls VestigiumLogger.Initialize.

Logging

VestigiumLogger.Initialize(cfg =>
{
    cfg.AppId = "PingIQ";                       // host APPID, not Json
    cfg.LogDirectory = logDir;
    JsonCatalog.Register(cfg);
});

Writes are no-ops until the host initializes. JSONL lands at %ProgramData%\\Vestigium\\Logs\\{host-APPID}\\.

Named events live in EventCatalog/json.json. The library does not load that file at runtime. Event IDs are per subcategory in 13500–13999 (step 5), used through 13640.

Audit trail: Vestigium.Logging. Trees: Vestigium.Helpers.FileIo. Tables: Vestigium.Helpers.Csv.

Long-form documents live in Vestigium.Documentation / Helpers / Json. Folders, not files — current revision sits inside the folder.

Area GitHub
000 -- Archived folder
001 -- Implementation Plan folder
002 -- Requirements Document folder
003 -- Design Document folder
004 -- Developers Guide folder
Product Compatible and additional computed target framework versions.
.NET 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Vestigium.Helpers.Json:

Package Downloads
Vestigium.Helpers.Network

Workstation inventory and protocol jobs for diagnostic hosts. Logging via Vestigium.Logging. Campaign stats via Vestigium.Helpers.Json. P95 via Analytics. Share probes via FileIo. OUI lookup is a caller URL. The embedded snapshot is a stub.

Vestigium.Helpers.Processes

Windows process table: list, get, search, lifetime, campaigns.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 1,205 9/24/2026