Json Helpers by ZTn
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
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
string
To a var json = obj.WriteToJsonString();
To a file given its path
obj.WriteToJsonFile("data.json");
Json deserialization
Stream
From a The stream can automatically be closed when done
var obj = aStream.CreateFromJsonStream<MyType>();
or kept open for further use
var obj = aStream.CreateFromJsonPersistentStream<MyType>();
string
From a 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
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
string
To a 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
Stream
From a var obj = aStream.ReadAsJson<MyType>();
string
From a 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.