在.net core 3.0中,內置了一套新的json api,主要用於去除asp.net core對json.net的依賴,同時也提供了更好的性能(直接處理 UTF-8,而無需轉碼到 UTF-16)。雖然沒有正式發布,隨着幾個preview版本下來,已經有一個功能比較完善的版本了,本文這里就簡單的介紹一下它的用法:
對象序列化為JSON
將一個對象序列化為Json可以使用JsonSerializer類,它類似與json.net中的JsonConvert類,使用方式如下。
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反序列化為對象
反序列化的方式也和Json.net非常類似
string Serialize(WeatherForecast value) { var options = new JsonSerializerOptions { WriteIndented = true }; return JsonSerializer.ToString(value, options); }
其它的更多用法可以參考微軟的官方博客:Try the new System.Text.Json APIs。
總體試用下來的感覺是,基本功能都有,但和json.net比起來高級功能還有許多缺失,但足以滿足大部分場景下的需要了。加上是系統內置的,用起來還是非常方便的。相信未來會有越來越多的使用json.net的場景會向內置的json框架遷移的。
參考文章:
