在 .NET 中使用 C# 处理 YAML
生活随笔
收集整理的這篇文章主要介紹了
在 .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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大厂出品免费图标资源站
- 下一篇: C#中HashTable、Diction