在 .NET 中使用 C# 处理 YAML

在 .NET 中,可以使用 YamlDotNet 类库解析和生成 YAML 文件。

YamlDotNet :https://github.com/aaubry/YamlDotNet

NuGet 下载:https://www.nuget.org/packages/YamlDotNet/

帮助文档:https://github.com/aaubry/YamlDotNet/wiki

序列化一个对象为 YAML 格式

using YamlDotNet.Serialization;using YamlDotNet.Serialization.NamingConventions;...var person = new Person{Name = "Abe Lincoln",Age = 25,HeightInInches = 6f + 4f / 12f,Addresses = new Dictionary<string, Address>{{ "home", new  Address() {Street = "2720  Sundown Lane",City = "Kentucketsville",State = "Calousiyorkida",Zip = "99978",}},{ "work", new  Address() {Street = "1600 Pennsylvania Avenue NW",City = "Washington",State = "District of Columbia",Zip = "20500",}},}};var serializer = new SerializerBuilder().WithNamingConvention(CamelCaseNamingConvention.Instance).Build();var yaml = serializer.Serialize(person);System.Console.WriteLine(yaml);// Output: // name: Abe Lincoln// age: 25// heightInInches: 6.3333334922790527// addresses://   home://     street: 2720  Sundown Lane//     city: Kentucketsville//     state: Calousiyorkida//     zip: 99978//   work://     street: 1600 Pennsylvania Avenue NW//     city: Washington//     state: District of Columbia//     zip: 20500

反序列化 YAML 到对象

using YamlDotNet.Serialization;using YamlDotNet.Serialization.NamingConventions;...
var yml = @"
name: George Washington
age: 89
height_in_inches: 5.75
addresses:home:street: 400 Mockingbird Lanecity: Louarylandstate: Hawidahozip: 99970
"
name: George Washington
age: 89
height_in_inches: 5.75
addresses:home:street: 400 Mockingbird Lanecity: Louarylandstate: Hawidahozip: 99970
";var deserializer = new DeserializerBuilder().WithNamingConvention(UnderscoredNamingConvention.Instance)  // see height_in_inches in sample yml.Build();//yml contains a string containing your YAMLvar p = deserializer.Deserialize<Person>(yml);var h = p.Addresses["home"];System.Console.WriteLine($"{p.Name} is {p.Age} years old and lives at {h.Street} in {h.City}, {h.State}.");// Output:// George Washington is 89 years old and lives at 400 Mockingbird Lane in Louaryland, Hawidaho.

转换 YAML 为 JSON 格式

var r = new StringReader(@"
scalar: a scalar
sequence:- one- two
");var deserializer = new DeserializerBuilder().Build();var yamlObject = deserializer.Deserialize(r);
var serializer = new SerializerBuilder().JsonCompatible().Build();
var json = serializer.Serialize(yamlObject);Console.WriteLine(json);

该代码会产生以下输出:

{"scalar": "a scalar", "sequence": ["one", "two"]}

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

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

相关文章

java读取图片缩略方法_java 图片缩略图的两种方法

最近网上看到两种不同的java图片缩略图的绘制方案第一种&#xff0c;使用Graphics().drawImage按照一定的比例重新绘制图像。Java代码package com.image.suoluetu;import java.io.*;import java.awt.*;import java.awt.image.*;import com.sun.image.codec.jpeg.*;public class…

Python项目可以有多大?最多可以有多少行代码?

全世界有3.14 % 的人已经关注了数据与算法之美导读&#xff1a;总是看到有人说&#xff0c;动态一时爽&#xff0c;重构火葬场。然而这世界上有的是著名的开源项目&#xff0c; 也有像 Github、Instagram 这样流量巨大的知名网站是基于动态语言开发的&#xff0c;经过了这么多年…

从好买辞职后,为什么我会加入一家开源创业公司?

这是头哥侃码的第240篇原创熟悉我的朋友都知道&#xff0c;我是一个闲不住的人。工作之余&#xff0c;我不仅愿意把自己的经验拿出来与大家分享&#xff0c;而且还总是喜欢在字里行间中表达情感&#xff0c;并抒发命运的奇妙与无常。为什么&#xff1f;因为在我看来&#xff0c…

Apache 虚拟主机 VirtualHost 配置

为什么80%的码农都做不了架构师&#xff1f;>>> 虚拟主机 (Virtual Host) 是在同一台机器搭建属于不同域名或者基于不同 IP 的多个网站服务的技术. 可以为运行在同一物理机器上的各个网站指配不同的 IP 和端口, 也可让多个网站拥有不同的域名. Apache 是世界上使用…

IT公司老板落水,各部门员工怎么救?

公司高层公司副总A&#xff1a;咱们开个会研究一下这个事情怎么处理。公司副总B&#xff1a;如果老板没有救成功&#xff0c;下任是谁呢&#xff1f;会不会影响公司的上市&#xff1f;公司副总C&#xff1a;我认为咱们开会应该讨论两个方案&#xff0c;一个是救人方案&#xff…

这样用Docker 搭建 Jenkins 实现自动部署,你知道吗?

一、为什么用jenkins主要是我们现在的项目都是采用手动部署的&#xff0c;每当给项目中新增一个功能就必须执行(打包--测试--上传测试修复的包到指定服务器--部署上线)&#xff0c;这个流程操作起来繁杂&#xff0c;不小心就可能导致部署失败&#xff1b;急需找到一个方式来解决…

这是对R的误解!R的应用原来这么广!

R作为一种统计分析软件&#xff0c;广泛应用于生物、医学、电商、新闻等数据相关行业&#xff0c;是目前主流数据应用软件之一。为了更好地帮助大家了解并快速入门R语言&#xff0c;现超级数学建模携手柯老师以R语言为基础&#xff0c;向大家隆重推出《R语言基础》系列课。柯老…

WinDBg定位asp.net mvc项目异常崩溃源码位置

项目介绍&#xff1a;asp.net mvc angular iiswindows server系统莫名崩溃最近有个系统默认奇妙崩溃50x&#xff0c;服务整体变成无响应&#xff0c;当运维告知我只有重启应用程序池项目才能正常。我问他如何重现&#xff0c;得到的回复是我这里无法重现&#xff0c;但客户使用…

mysql如何和qt连接使用_Qt5学习:连接MySQL数据库

一、环境QT版本&#xff1a;QT 5.8.0(msvc2013_64)MySQL版本&#xff1a;mysql 5.7.19二、配置之前 mysql 数据库一直都连接不上&#xff0c;网上也搜了很多资料&#xff0c;主要还是库文件的问题。重新将 mysql.pro 编译一下&#xff0c;将生成的 .dll 和 .lib 文件拷贝到 QT …

TensorFlow框架的这些操作你肯定不知道!

谷歌在上周正式推出了深度学习框架TensorFlow 1.11.0 版本&#xff0c;那么TensorFlow框架到底是什么&#xff1f;TensorFlow™ 是一个采用数据流图&#xff08;data flow graphs&#xff09;&#xff0c;用于数值计算的开源软件库。最初由Google大脑小组的研究员和工程师们开发…

C#中HashTable、Dictionary、ConcurrentDictionary区别

一、HashTableHashTable表示键/值对的集合。在.NET Framework中&#xff0c;Hashtable是System.Collections命名空间提供的一个容器&#xff0c;用于处理和表现类似key-value的键值对&#xff0c;其中key通常可用来快速查找&#xff0c;同时key是区分大小写&#xff1b;value用…

CDA数据分析师备考必看,L1L2通用

CDA数据分析师L1,L2均可 可安排当月月底的线上考试 线上考的为双机位监考&#xff0c;但是不用担心 安全无隐患&#xff0c;需要联系 当月拿证

你以为妹子穿短裙真的是为了诱惑你吗?

全世界有3.14 % 的人已经关注了数据与算法之美每年暑假&#xff0c;ChinaJoy 都会火热进行&#xff0c;无数一年不出家门的宅男们扛着“长枪大炮”&#xff0c;向着短裙姑娘们就冲过去了。关于裙子&#xff0c;林语堂曾有过一句名言&#xff1a;“演讲应该像女士的裙子&#xf…

聊一聊Jmeter的参数化

背景 前面一篇聊了一下 JMeter 的简单使用&#xff0c;这篇聊一下 JMeter 的参数化。在开始之前先来一个单元测试的例子&#xff0c;感受一下参数化。上面是一个用 xUnit 写的单元测试&#xff0c;这个单元测试就是一个参数化的例子&#xff1a;模拟了不同的输入&#xff0c;调…

Android VNC Server New

Android VNC Server New 关于VNC请参见维基百科&#xff1a;http://zh.wikipedia.org/wiki/VNC关于执行Android VNC Server&#xff0c;请参见前一篇文章&#xff1a;点击链接 一、VNC下载1&#xff09;fastdroid-vncAndroid VNC Server开源项目 http://code.google.com/p/fast…

EPPlus导出Excel感觉很不错~~~

前言导出成为很多系统的必备功能&#xff0c;之前分享过导出PDF的功能&#xff0c;这里来分享一下Excel的导出&#xff1b;提到Excel导出&#xff0c;NPOI肯定是很多小伙伴的首选&#xff0c;在以往的项目中也用其完成了很多导出需求&#xff1b;对于NPOI&#xff0c;个人感觉使…

[文摘]标准的软件开发过程

为什么80%的码农都做不了架构师&#xff1f;>>> 软件开发的标准过程包括六个阶段&#xff0c;而六个阶段需要编写的各类文件达 14 种之多&#xff0c;在每个阶段需要编写哪些文件&#xff0c;以及这些文件的主要内容见下&#xff1a; 1.可行性与计划研究阶段 可行性…

走进乔布斯的大脑

全世界有3.14 % 的人已经关注了数据与算法之美你永远也无法走进苹果教父乔布斯神秘的大脑&#xff0c;但下面的图可以让你多靠近了解他一点。人们都想走进乔帮主的大脑里看看他的想法&#xff0c;可惜他太难以捉摸了。但是&#xff0c;有个有趣的方法&#xff0c;至少可以让人们…

硬货 | 一片小小的薄膜,却可以粘住全世界!

延续“设计激发积极生活”的理念&#xff0c;在这个中秋&#xff0c;GYMLIVING特别推出月亮概念新产品&#xff0c;在便利生活的同时&#xff0c;为你带来一份浪漫和惊喜&#xff01;说起月亮&#xff0c;除了阴晴圆缺&#xff0c;月球漫步更让它成了浪漫的代名词。有公司正计划…

使用域超级管理员打开Exchange 2010发现没有权限

1.使用administrator管理员打开EMC却报没有权限。 2.发现此问题&#xff0c;系邮件服务器本身上安装了outlook软件&#xff0c;并配置了使用非administrator账户收信。并有做了Windows保存了用户凭据&#xff0c;造成帐号使用上的混乱&#xff0c;导致连接Exchange服务器时使用…