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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

NET流行高性能JSON框架-Json.NET

發布時間:2023/12/4 javascript 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NET流行高性能JSON框架-Json.NET 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在日常編程中經常會使用到Json來進行數據的交互好在.Net平臺下有很多開源的Json庫使得我們能夠比較輕松快速的處理各種復雜的Json,其中Newtonsoft庫

是NET的流行高性能JSON框架

特性


工具

VS2010+

Newtonsoft庫

從NuGet下載合適的Newtonsoft.Json庫

1.在你需要引用Newtosoft.Json的項目上,點擊鼠標右鍵,管理Nuget程序包即可打開項目包管理器。

2.在包管理器中輸入關鍵字"Json"看到Newtosoft.Json這個庫 點擊右下加的箭頭即可完成安裝。


示例

1、序列化JSON-序列化和反序列化JSON,序列化程序設置和序列化屬性

public class Account {public string Email { get; set; }public bool Active { get; set; }public DateTime CreatedDate { get; set; }public IList<string> Roles { get; set; } } Account account = new Account {Email = "james@example.com",Active = true,CreatedDate = new DateTime(2013, 1, 20, 0, 0, 0, DateTimeKind.Utc),Roles = new List<string>{"User","Admin"} };string json = JsonConvert.SerializeObject(account, Formatting.Indented); // { // "Email": "james@example.com", // "Active": true, // "CreatedDate": "2013-01-20T00:00:00Z", // "Roles": [ // "User", // "Admin" // ] // }Console.WriteLine(json);

2、LINQ to JSON-解析,查詢,修改和編寫JSON

JArray array = new JArray(); array.Add("Manual text"); array.Add(new DateTime(2000, 5, 23));JObject o = new JObject(); o["MyArray"] = array;string json = o.ToString(); // { // "MyArray": [ // "Manual text", // "2000-05-23T00:00:00" // ] // }

3、JSON模式-加載模式并驗證JSON。請注意,JSON Schema驗證已移至其自己的程序包。有關?更多詳細信息,請參見https://www.newtonsoft.com/jsonschema。

JObject o = JObject.Parse(@"{'Stores': ['Lambton Quay','Willis Street'],'Manufacturers': [{'Name': 'Acme Co','Products': [{'Name': 'Anvil','Price': 50}]},{'Name': 'Contoso','Products': [{'Name': 'Elbow Grease','Price': 99.95},{'Name': 'Headlight Fluid','Price': 4}]}] }");string name = (string)o.SelectToken("Manufacturers[0].Name");Console.WriteLine(name); // Acme Codecimal productPrice = (decimal)o.SelectToken("Manufacturers[0].Products[0].Price");Console.WriteLine(productPrice); // 50string productName = (string)o.SelectToken("Manufacturers[1].Products[0].Name");Console.WriteLine(productName); // Elbow Grease

4、轉換XML-將JSON轉換為XML和XML轉換為JSON

string json = @"{'@Id': 1,'Email': 'james@example.com','Active': true,'CreatedDate': '2013-01-20T00:00:00Z','Roles': ['User','Admin'],'Team': {'@Id': 2,'Name': 'Software Developers','Description': 'Creators of fine software products and services.'} }";XNode node = JsonConvert.DeserializeXNode(json, "Root");Console.WriteLine(node.ToString()); // <Root Id="1"> // <Email>james@example.com</Email> // <Active>true</Active> // <CreatedDate>2013-01-20T00:00:00Z</CreatedDate> // <Roles>User</Roles> // <Roles>Admin</Roles> // <Team Id="2"> // <Name>Software Developers</Name> // <Description>Creators of fine software products and services.</Description> // </Team> // </Root>

5、BSON-序列化和反序列化BSON

public class Event {public string Name { get; set; }public DateTime StartDate { get; set; } } Event e = new Event {Name = "Movie Premiere",StartDate = new DateTime(2013, 1, 22, 20, 30, 0, DateTimeKind.Utc) };MemoryStream ms = new MemoryStream(); using (BsonWriter writer = new BsonWriter(ms)) {JsonSerializer serializer = new JsonSerializer();serializer.Serialize(writer, e); }string data = Convert.ToBase64String(ms.ToArray());Console.WriteLine(data); // MQAAAAJOYW1lAA8AAABNb3ZpZSBQcmVtaWVyZQAJU3RhcnREYXRlAED982M8AQAAAA==

6、讀取和寫入JSON-使用JsonTextReader讀取JSON,使用JsonTextWriter寫入JSON

string json = @"{'CPU': 'Intel','PSU': '500W','Drives': ['DVD read/writer'/*(broken)*/,'500 gigabyte hard drive','200 gigabyte hard drive'] }";JsonTextReader reader = new JsonTextReader(new StringReader(json)); while (reader.Read()) {if (reader.Value != null){Console.WriteLine("Token: {0}, Value: {1}", reader.TokenType, reader.Value);}else{Console.WriteLine("Token: {0}", reader.TokenType);} }// Token: StartObject // Token: PropertyName, Value: CPU // Token: String, Value: Intel // Token: PropertyName, Value: PSU // Token: String, Value: 500W // Token: PropertyName, Value: Drives // Token: StartArray // Token: String, Value: DVD read/writer // Token: Comment, Value: (broken) // Token: String, Value: 500 gigabyte hard drive // Token: String, Value: 200 gigabyte hard drive // Token: EndArray // Token: EndObject

更多功能見https://github.com/JamesNK/Newtonsoft.Json

總結

以上是生活随笔為你收集整理的NET流行高性能JSON框架-Json.NET的全部內容,希望文章能夠幫你解決所遇到的問題。

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