.NET Core 3.0 新 JSON API - Utf8JsonWriter

Utf8JsonWriter 

下面研究一下如何寫入json文件。這裏需要使用Utf8JsonWriter類。 

直接看代碼: 

640?wx_fmt=png

這個類需要傳遞的參數類型是Stream或者Buffer,也就是向StreamBuffer裏面寫入數據。 

 

那麼就提供一個buffer 

640?wx_fmt=png

 

下面單獨寫一個方法,來生成json數據: 

640?wx_fmt=png

參數類型是Utf8JsonWriter。通過智能提示可以看到它提供了很多用於寫入不同類型數據的方法。 

 

JSON對象 

現在我想寫一個json對象,那麼就從WriteStartObject()開始,然後以WriteEndObject()結束: 

640?wx_fmt=png

這樣的話,實際上我已經擁有了一個合法的json文檔。 

 

寫屬性和值 

可以分開寫屬性和值: 

640?wx_fmt=png

 

也可以同時把屬性和值寫出來: 

640?wx_fmt=png

 

顯示JSON數據 

我先寫這些內容,然後在Main方法裏面調用一下: 

640?wx_fmt=png

 

首先需要告訴writer把它的內容flush給buffer,使用這個buffer我們可以獲得writer的輸出,這樣的話就會得到一個byte數組,然後把這個byte數組轉化爲字符串,這樣就可以在控制檯顯示它了: 

640?wx_fmt=png

 

運行一下看看效果: 

640?wx_fmt=png

沒啥太大的問題,就是格式不好看。 

 

對輸出進行格式化 

.NET Core提供了一個JsonWriterOptions類,它可以對Writer進行一些設置。 

640?wx_fmt=png

這裏對輸出進行了縮進,最後把這個options傳遞給Utf8JsonWriter的構造函數即可。 

 

再次運行: 

640?wx_fmt=png

現在好看多了。