以往在 .NET 上處理 JSON,都是使用 Newtonsoft 的 library,甚至連微軟官方也使用這家的 library。不過現在新版本的 .NET Core 則新增了 System.Text.Json 這個命名空間,也就是說微軟自己已經內建了 JSON 的處理方式,來看一下基本的序列化及反序列化方式:

public   class TestClass
{
    public string Field1 { get; set; }
    public int Field2 { get; set; }
    public DateTime Field3 { get; set; }
    public override string ToString()
    {
        return $"Field1: {Field1}, Field2: {Field2}, Field3: {Field3}";
    }
}

...

TestClass t1 = new TestClass
{
    Field1 = "aaa3",
    Field2 = 9,
    Field3 = DateTime.Now
};
string jsonStr = JsonSerializer.Serialize(t1);
Console.WriteLine(jsonStr);

轉成 JSON 字串的方式非常簡單,但印出來的文字其實是一整行的,閱讀不易,可以再加一個 JsonSerializerOptions 類型的參數去格式化字串:

TestClass t1 = new TestClass
{
    Field1 = "aaa3",
    Field2 = 9,
    Field3 = DateTime.Now
};
JsonSerializerOptions options = new JsonSerializerOptions
{
    WriteIndented = true
};
string jsonStr = JsonSerializer.Serialize(t1, options);
Console.WriteLine(jsonStr);

至於反序列化也不會太難,方式如下:

TestClass t2 = JsonSerializer.Deserialize<TestClass>(jsonStr);
Console.WriteLine(t2.ToString());

參考資料