.NET Core 3.0 新 JSON API - JsonDocument

JsonDocument 

JsonDocument是基于Utf8JsonReader 构建的JsonDocument 可分析 JSON 数据并生成只读文档对象模型 (DOM),可对模型进行查询,以支持随机访问和枚举。使用 JsonDocument 分析常规 JSON 有效负载并访问其所有成员比使用 Json.NET  2-3 倍,且为合理大小(即 < 1 MB)的数据所分配的量非常少。 

JsonDocument可以处理Span,也可以处理Stream 

 

例子: 

640?wx_fmt=png

这里我通过File.OpenReadjson文件转化为stream。然后使用JsonDocument.Parse方法把stream解析成JSON文档对象模型。 

注意,这里我使用了C# 8using var语法,这个以后再说。 

 

下面我们开始从这个JSON文档对象模型的根节点开始遍历,也就是RootElement 

640?wx_fmt=png

 

然后通过root这个JsonElement类型的对象的GetProperty方法来获得相应的属性,而且这个方法可以连串使用: 

640?wx_fmt=png

最后一行使用GetString方法来获得该属性的字符串值。 

 

然后我们可以写一个递归调用的方法来遍历整个模型的每个属性: 

640?wx_fmt=png

这个方法接受JsonElement类型的对象,然后对该元素的属性进行循环。 

如果当前属性是另一个对象,那么就继续递归调用这个方法; 

否则就输出原始的文本。 

 

 

最后调用该方法: 

640?wx_fmt=png

 

输出结果为: 

640?wx_fmt=png

与json文件的内容匹配。 

 

 

最后解释一下什么是递归: 

 

 

 

 

640?wx_fmt=jpeg

更详细的内容请查看原文连接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/313256.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软推出 Microsoft.Data.SqlClient,替代 System.Data.SqlClient

背景在 .NET 创建之初&#xff0c;System.Data 框架是一个重要的组件。它为创建 .NET 数据库驱动程序提供了一种方式&#xff0c;类似 Visual Basic 的 ActiveX Data Objects。虽然 API 不一样&#xff0c;但重用了它的名称&#xff0c;所以才有了 ADO .NET 这个绰号。ADO 和 A…

C++ 从文件夹中读取文件

OpenCV从文件夹中读取内含文件方法 参考&#xff1a;http://www.2cto.com/kf/201407/316515.html http://www.it610.com/article/5126146.htm http://blog.csdn.net/adong76/article/details/39432467 windows平台代码&#xff1a; [cpp] view plaincopy #include <io.h&…

你必须知道的容器监控 (1) Docker自带子命令与Weave Scope

本篇已加入《》&#xff0c;可以点击查看更多容器化技术相关系列文章。本篇会介绍几个目前比较常用且流行的容器监控工具&#xff0c;首先我们来看看Docker自带的几个监控子命令&#xff1a;ps、top以及stats&#xff0c;然后是一个功能更强的开源监控工具Weave Scope。# 实验环…

char *与char []

由于指针的灵活性&#xff0c;导致指针能代替数组使用&#xff0c;或者混合使用&#xff0c;这些导致了许多指针和数组的迷惑&#xff0c;因此&#xff0c;刻意再次深入探究了指针和数组这玩意儿&#xff0c;其他类型的数组比较简单&#xff0c;容易混淆的是字符数组和字符指针…

.NET Core ORM 类库Petapoco中对分页Page添加Order By对查询的影响

介绍最近一直在使用PetapocoEntity Framework Core结合开发一套系统。使用EFCore进行Code First编码&#xff0c;使用使用Petapoco进行数据库的常规操作。并且结合PetaPoco.SqlKata的使用&#xff0c;减少了编写SQL语句的工作量&#xff0c;对提升开发效率有很大的帮助。Petapo…

.Net Core 3.0 IdentityServer4 快速入门

一、简介IdentityServer4是用于ASP.NET Core的OpenID Connect和OAuth 2.0框架。将IdentityServer4部署到您的应用中具备如下特点&#xff1a;1&#xff09;、认证服务2&#xff09;、单点登陆3&#xff09;、API访问控制4&#xff09;、联合网关5&#xff09;、专注于定制6&…

.NET Core3.0创建Worker Services

.NET CORE 3.0新增了Worker Services的新项目模板&#xff0c;可以编写长时间运行的后台服务&#xff0c;并且能轻松的部署成windows服务或linux守护程序。如果安装的vs2019是中文版本&#xff0c;Worker Services变成了辅助角色服务。Worker Services 咱也不知道怎么翻译成了这…

OpenCV Mat数据类型像素操作

转自&#xff1a;http://blog.csdn.net/skeeee/article/details/13297457 OpenCV图像像素操作及效率分析 在计算机视觉应用中&#xff0c;对于图像内容的读取分析是第一步&#xff0c;所以学习高效的处理图像是很有用的。一个图像有可能包含数以万计的像素&#xff0c;从根本上…

Bumblebee微服务网关之Url重写

为了提高Url访问的统一和友好性&#xff0c;一般访问的Url和服务定义的Url有所不同;为了解决这一问题Bumblebee提供Url重写功能;通过Url重写功能可以在转发前进行一个重写后再转发到后台服务。引用插件Bumblebee中使用Url重写需要引用两个插件&#xff0c;分别是Bumblebee.Conf…

依赖注入:一个Mini版的依赖注入框架

前面的章节中&#xff0c;我们从纯理论的角度对依赖注入进行了深入论述&#xff0c;我们接下来会对.NET Core依赖注入框架进行单独介绍。为了让读者朋友能够更好地理解.NET Core依赖注入框架的设计与实现&#xff0c;我们按照类似的原理创建了一个简易版本的依赖注入框架&#…

.NET Core 3.0 新 JSON API - JsonSerializer

JsonSerializer 前面几节的内容可能稍微有点底层&#xff0c;我们大部分时候可能只需要对C#的类进行串行化或者将JSON数据反串行化成C#类&#xff0c;在.NET Core 3.0里面&#xff0c;我们可以使用JsonSerializer这个类来做这些事情。 例子 还是使用之前用到的json数据&#xf…

Caffe查看每一层学习出来的pattern

Filter visualization http://www.cnblogs.com/dupuleng/articles/4244877.html 这一节参考http://nbviewer.ipython.org/github/BVLC/caffe/blob/master/examples/filter_visualization.ipynb&#xff0c;主要介绍如何显示每一层的参数及输出&#xff0c;这一部分非常重要&am…

.NET Core 3.0 新 JSON API - Utf8JsonWriter

Utf8JsonWriter类 下面研究一下如何写入json文件。这里需要使用Utf8JsonWriter类。 直接看代码&#xff1a; 这个类需要传递的参数类型是Stream或者Buffer&#xff0c;也就是向Stream或Buffer里面写入数据。 那么就提供一个buffer&#xff1a; 下面单独写一个方法&#xff0c;来…

python查看CNN训练模型参数

参照&#xff1a;http://blog.csdn.net/u011762313/article/details/49851795 #!/usr/bin/env python# 引入“咖啡” import caffeimport numpy as np# 使输出的参数完全显示 # 若没有这一句&#xff0c;因为参数太多&#xff0c;中间会以省略号“……”的形式代替 np.set_prin…

Bumblebee微服务网关之consul服务发现

网关需要维护相关负载的服务器&#xff0c;手动添加相对来说是一件比较麻烦的工作&#xff1b;为了解决这一问题组件扩展了一个基于consul服务发现插件&#xff0c;通过配置这个插件和启用后网关会自动从consul服务中获取服务并添加到网关对应的路由负载规则中。引用插件Bumble…

Github带来的不止是开源,还有折叠的认知

几乎每个程序员都知道github&#xff0c;但是知道目前上面有多少repositories的估计没几个。Z哥今天去看了下&#xff0c;最新的数量显示是1.39亿个。▲截图来自于github.com而这个数字在2008年那会只是3.3万个。这个增长速度可谓真的是“爆炸式增长”。与此同时&#xff0c;大…

最优间隔分类器-SVM

http://blog.csdn.net/Andrewseu/article/details/46991541 本讲大纲&#xff1a; 1.最优间隔分类器(optimal margin classifier) 2.原始/对偶优化问题&#xff08;KKT&#xff09;&#xff08;primal/dual optimization problem&#xff09; 3.SVM对偶(SVM dual) 4.核方法(…

自动给 Asp.Net Core Api 增加 ApiVersionNeutral

自动给 Asp.Net Core Api 增加 ApiVersionNeutralIntro新增加一个 Controller 的时候&#xff0c;经常忘记在 Controller 上增加 ApiVersion &#xff0c;结果就导致前端使用指定的 ApiVersion 访问的时候就会失败&#xff0c;不支持的 Api 版本。错误信息如下&#xff1a;{ &q…

K-means与高斯混合模型

K-means http://blog.pluskid.org/?p17 Clustering 中文翻译作“聚类”&#xff0c;简单地说就是把相似的东西分到一组&#xff0c;同 Classification (分类)不同&#xff0c;对于一个 classifier &#xff0c;通常需要你告诉它“这个东西被分为某某类”这样一些例子&#xf…

轻量级ORM《sqlcommon》第一个版本发布了

一、sqlcommon的特色1. 轻量级&#xff0c;整个包只有123kb。2. 性能好&#xff0c;自测。。。3. API和功能简单、代码简短、可维护性好基本都能看懂。这个点我认为很重要&#xff0c;你不用为了实现一个需求而四处查资料&#xff0c;这意味着这个包你可以自行维护修改&#xf…