您现在的位置是:亿华云 > 数据库
NET流行高性能JSON框架之Json.NET
亿华云2025-10-08 21:19:46【数据库】1人已围观
简介本文转载自微信公众号「UP技术控」,作者conan5566。转载本文请联系UP技术控公众号。在日常编程中经常会使用到Json来进行数据的交互好在.Net平台下有很多开源的Json库使得我们能够比较轻松
本文转载自微信公众号「UP技术控」,行高性作者conan5566。框架转载本文请联系UP技术控公众号。行高性
在日常编程中经常会使用到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 Co decimal productPrice = (decimal)o.SelectToken("Manufacturers[0].Products[0].Price"); Console.WriteLine(productPrice); // 50 string productName = (string)o.SelectToken("Manufacturers[1].Products[0].Name"); Console.WriteLine(productName); // Elbow Grease4、转换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
云服务器很赞哦!(552)
相关文章
- 域名不仅仅是一个简单的网站。对于有长远眼光的公司来说,在运营网站之前确定一个优秀的域名对有长远眼光的公司来说是非常重要的。这对今后的市场营销、产品营销和企业品牌建设都具有十分重要的意义。优秀的域名是企业在市场竞争中获得持久优势的利器。
- 七张图带你轻松入门RocketMQ
- LeetCode -求两个有序数组的中间值
- 企业中文域名被恶意抢注危害大吗?要高价赎回吗?
- 为了避免将来给我们的个人站长带来的麻烦,在选择域名后缀时,我们的站长最好省略不稳定的后缀域名,比如n,因为我们不知道策略什么时候会改变,更不用说我们将来是否还能控制这个域名了。因此,如果站长不是企业,或者有选择的话,如果不能选择域名的cn类,最好不要选择它。
- EasyC++,静态持续变量
- 浅谈互联网分布式架构的演进
- 你还在遍历搜索集合?别逗了!Java 8 一行代码搞定,是真的优雅!
- 5、企业注册国内域名需要证件,其它情况一律不需要证件。
- 数据源集市实时流转MySQL状态表的优化方案