Skip to content

Instantly share code, notes, and snippets.

@EifelMono
Last active May 28, 2021 04:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save EifelMono/eec4a056695d3f65489876b6be201db2 to your computer and use it in GitHub Desktop.
Save EifelMono/eec4a056695d3f65489876b6be201db2 to your computer and use it in GitHub Desktop.
Newtonsoft sample
using System;
using Newtonsoft.Json;
using static System.Console;
public class Program
{
public class TestClass
{
public DateTime TimeStamp{get;set;}= DateTime.MinValue;
public DayOfWeek DayOfWeek {get;set;}= DayOfWeek.Monday;
public string Name {get;set;}= "";
public int Number {get;set;}= 0;
public override string ToString() => $"{TimeStamp} {DayOfWeek} {Name} {Number}";
public TestClass SetValues()
{
TimeStamp= DateTime.Now;
DayOfWeek= DayOfWeek.Sunday;
Name= "Test";
Number= 4711;
return this;
}
}
public static void Main()
{
JsonTest();
WriteLine();
StringEnumsJsonTest();
}
public static void JsonTest()
{
WriteLine(nameof(JsonTest));
var obj= new TestClass().SetValues();
WriteLine($"obj={obj}");
var json= JsonConvert.SerializeObject(obj, Formatting.Indented); // Pretty print format with Formatting.Indented
WriteLine(json);
var objFromJson= JsonConvert.DeserializeObject<TestClass>(json);
WriteLine($"objFromJson={objFromJson}");
}
public static JsonSerializerSettings JsonSerializerSettings_PrettyPrint_StringEnums()
{
var result= new JsonSerializerSettings{ Formatting= Formatting.Indented};
result.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter());
return result;
}
public static void StringEnumsJsonTest()
{
WriteLine(nameof(StringEnumsJsonTest));
var obj= new TestClass().SetValues();
WriteLine($"obj={obj}");
var json= JsonConvert.SerializeObject(obj, JsonSerializerSettings_PrettyPrint_StringEnums());
WriteLine(json);
var objFromJson= JsonConvert.DeserializeObject<TestClass>(json, JsonSerializerSettings_PrettyPrint_StringEnums());
WriteLine($"objFromJson={objFromJson}");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment