日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

在 .NET 中使用 C# 处理 YAML

發布時間:2023/12/4 C# 73 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在 .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"]} 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的在 .NET 中使用 C# 处理 YAML的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。