.net core 3.0中的Json API

在.net core 3.0中,內置了一套新的json api,主要用於去除asp.net core對json.net的依賴,同時也提供了更好的性能(直接處理 UTF-8,而無需轉碼到 UTF-16)。雖然沒有正式發佈,隨着幾個preview版本下來,已經有一個功能比較完善的版本了,本文這裏就簡單的介紹一下它的用法: git

對象序列化爲JSONgithub

將一個對象序列化爲Json能夠使用JsonSerializer類,它相似與json.net中的JsonConvert類,使用方式以下。 json

class WeatherForecast
{
    public DateTimeOffset Date         { get; set; }
    public int            TemperatureC { get; set; }
    public string         Summary      { get; set; }
}
 
string Serialize(WeatherForecast value)
{
    return JsonSerializer.ToString(value);
}

 將Json反序列化爲對象api

反序列化的方式也和Json.net很是相似 框架

string Serialize(WeatherForecast value)
{
    var options = new JsonSerializerOptions
    {
        WriteIndented = true
    };
 
    return JsonSerializer.ToString(value, options);
}

其它的更多用法能夠參考微軟的官方博客:Try the new System.Text.Json APIsasp.net

整體試用下來的感受是,基本功能都有,但和json.net比起來高級功能還有許多缺失,但足以知足大部分場景下的須要了。加上是系統內置的,用起來仍是很是方便的。相信將來會有愈來愈多的使用json.net的場景會向內置的json框架遷移的。性能

參考文章:spa

相關文章
相關標籤/搜索