ZTn.System.Text.Json.Helpers

A very simple library providing some extension methods around netcore System.Text.Json.


Keywords
csharp, netstandard, json
License
MIT
Install
Install-Package ZTn.System.Text.Json.Helpers -Version 1.1.0

Documentation

Json Helpers by ZTn

Build status

Some extension methods to help playing with JSON data.

2 nuget packages are now available using Newtonsoft.Json API for one and System.Text.Json API for the other.

ZTn.Json.Helpers

NuGet Badge

A very simple library providing some extension methods around NewtonSoft.Json library.

I've been using most of these extensions in several projects since 2012 and just decided it's time to make it public (some parts were already available on SO).

Json serialization

To a string

var json = obj.WriteToJsonString();

To a file given its path

obj.WriteToJsonFile("data.json");

Json deserialization

From a Stream

The stream can automatically be closed when done

var obj = aStream.CreateFromJsonStream<MyType>();

or kept open for further use

var obj = aStream.CreateFromJsonPersistentStream<MyType>();

From a string

var obj = "{\"key\":\"value\"}".CreateFromJsonString<MyType>();

From content of a file given its path

var obj = "data.json".CreateFromJsonFile<MyType>();

ZTn.System.Text.Json.Helpers

NuGet Badge

A library similar to ZTn.Json.Helpers but based on System.Text.Json API.

Note that the method names and signatures are different from the other package.

Json serialization

To a string

var json = obj.ToJson();

or get an indented string:

var json = obj.ToPrettyJson();

To a file given its path

obj.WriteAsJson("data.json");

or indent the file using:

obj.WriteAsPrettyJson("data.json");

Json deserialization

From a Stream

var obj = aStream.ReadAsJson<MyType>();

From a string

var obj = "{\"key\":\"value\"}".FromJson<MyType>();

From content of a file given its path

var obj = "data.json".ReadAsJson<MyType>();

Remark

  • These methods support an optional parameter of type JsonSerializerOptions for configuration.
  • The sub-namespace "Migration" allows to use the same API as Ztn.Helpers.Json but based on System.Text.Json, allowing (I hope) an easy transition.