Last active
May 28, 2021 04:06
-
-
Save EifelMono/eec4a056695d3f65489876b6be201db2 to your computer and use it in GitHub Desktop.
Newtonsoft sample
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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