.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

现在好看多了。