Utf8JsonWriter类 

下面研究一下如何写入json文件。这里需要使用Utf8JsonWriter类。

直接看代码:

这个类需要传递的参数类型是Stream或者Buffer,也就是向Stream或Buffer里面写入数据。

那么就提供一个buffer:

下面单独写一个方法,来生成json数据:

参数类型是Utf8JsonWriter。通过智能提示可以看到它提供了很多用于写入不同类型数据的方法。

写JSON对象 

现在我想写一个json对象,那么就从WriteStartObject()开始,然后以WriteEndObject()结束:

这样的话,实际上我已经拥有了一个合法的json文档。

写属性和值 

可以分开写属性和值:

也可以同时把属性和值写出来:

显示JSON数据 

我先写这些内容,然后在Main方法里面调用一下:

首先需要告诉writer把它的内容flush给buffer,使用这个buffer我们可以获得writer的输出,这样的话就会得到一个byte数组,然后把这个byte数组转化为字符串,这样就可以在控制台显示它了:

运行一下看看效果:

没啥太大的问题,就是格式不好看。

对输出进行格式化 

.NET Core提供了一个JsonWriterOptions类,它可以对Writer进行一些设置。

这里对输出进行了缩进,最后把这个options传递给Utf8JsonWriter的构造函数即可。

再次运行:

现在好看多了。

.NET Core 3.0 新 JSON API - Utf8JsonWriter相关推荐

  1. .NET Core 3.0 新 JSON API - JsonSerializer

    JsonSerializer  前面几节的内容可能稍微有点底层,我们大部分时候可能只需要对C#的类进行串行化或者将JSON数据反串行化成C#类,在.NET Core 3.0里面,我们可以使用JsonS ...

  2. .NET Core 3.0 新 JSON API - JsonDocument

    JsonDocument类  JsonDocument是基于Utf8JsonReader 构建的.JsonDocument 可分析 JSON 数据并生成只读文档对象模型 (DOM),可对模型进行查询, ...

  3. Razor Page–Asp.Net Core 2.0新功能 Razor Page介绍

    Razor Page介绍 前言 上周期待已久的Asp.Net Core 2.0提前发布了,一下子Net圈热闹了起来,2.0带来了很多新的特性和新的功能,其中Razor Page引起我的关注,作为web ...

  4. ASP.NET Core 1.0开发Web API程序

    .NET Core版本:1.0.0-rc2 Visual Studio版本:Microsoft Visual Studio Community 2015 Update 2 开发及运行平台:Window ...

  5. Entity Framework Core 2.0 新特性

    一.模型级查询过滤器(Model-level query filters) ef core2.0包含了一个新特性,我们叫他模型级查询过滤器(Model-level query filters).此特性 ...

  6. 在.Net Core 3.0中尝试新的System.Text.Json API

    .NET Core 3.0提供了一个名为System.Text.Json的全新命名空间,它支持reader/writer,文档对象模型(DOM)和序列化程序.在此博客文章中,我将介绍它如何工作以及如何 ...

  7. [译]试用新的System.Text.Json API

    译注 尝试新的System.Text.Json API 对于.NET Core 3.0,我们 提供了一个名为System.Text.Json的全新命名空间 ,支持读取器/写入器,文档对象模型(DOM) ...

  8. asp.net core 2.0 web api基于JWT自定义策略授权

    JWT(json web token)是一种基于json的身份验证机制,流程如下: 通过登录,来获取Token,再在之后每次请求的Header中追加Authorization为Token的凭据,服务端 ...

  9. 用VSCode开发一个asp.net core2.0+angular5项目(5): Angular5+asp.net core 2.0 web api文件上传...

    第一部分: http://www.cnblogs.com/cgzl/p/8478993.html 第二部分: http://www.cnblogs.com/cgzl/p/8481825.html 第三 ...

最新文章

  1. “XXXXX” is damaged and can’t be opened. You should move it to the Trash 解决方案
  2. 网页变灰配合全国哀悼日的css代码
  3. 二级路由dhcp关闭连不上wifi_酒店网络故障:原来还与DHCP服务器有关
  4. [leetcode] 72.编辑距离
  5. 第三章 最小化SpringXml 配置
  6. LightweightCTI开发实录(5)板卡适配器概述
  7. 日期上午下午怎么用date存_Java12都要出来了,你还在使用Date操作日期吗?
  8. c++怎么输入带有空格的字符串_字符串,啥东东?
  9. c语言fread参数,C语言fread函数
  10. 华为云OBS Requests specifying Server Side Encryption with KMS managed keys require Signature Version 4.
  11. ACCESS入门教程(五)数据的类型和属性
  12. 超全!Python 处理日期与时间的全面总结!
  13. 一个基于互联网医疗的创业公司,三年是一个收获
  14. ESLint和Prettier的配置
  15. 关于互联网流量劫持分析及可选的解决方案
  16. 2020年UI和UE的设计流行趋势揭秘!设计师最爱的是?
  17. python语言幂运算符号_python的基础运算符号
  18. 大数据应用安全研究报告
  19. python爬虫——爬取简书文章
  20. 科技企业上市就是一大悲剧(下)

热门文章

  1. SQL Server数据库同步问题分享[未完,待续](一)
  2. JS设置文本框只能是数字和小数点。
  3. PHP如何防采集方法代码
  4. 字节与浮点型转换软件_如何与另一个防病毒软件一起运行恶意软件字节
  5. macos剪切_如何使用macOS的内置“ Kill and Yank”作为替代剪切和粘贴
  6. Xtrabackup备份MySQL
  7. js 深复制一个对象
  8. postgresql 查看page, index, tuple 详细信息
  9. 配置Tomcat的日志系统
  10. 金山安全实验室公布中国互联网六大类钓鱼网站