JSON

Json.Net6.0入门学习篇 - aehyok

字号+ 作者:H5之家 来源:H5之家 2016-10-23 17:00 我要评论( )

Json.Net6.0入门学习篇 - aehyok

前言

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是 JavaScript 很容易解释它,而且 JSON 可以表示比"名称 / 值对"更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。

它所具有的特性:

1、 Flexible JSON serializer for converting between .NET objects and JSON —— 灵活的JSON序列化器用于实现.NET对象与JSON的转换

2、LINQ to JSON for manually reading and writing JSON ——LINQ to JSON用于手动读写Json

3、High performance, faster than .NET's built-in JSON serializers——

4、 Writes indented, easy to read JSON ——缩排书写,使得Json易读

5、 Convert JSON to and from XML——支持JSON 与 XML 两种格式相互转换

6、Supports .NET 2 .NET 3.5 .NET 4, Silverlight, Windows Phone and Windows 8——支持.NET2.NET3.5.NET4,Silverlight,Windows Phone和Windows 8

在.Net中内置了读写Json的对象就是 DataContractJsonSerializer 和 JavaScriptSerializer 这两个。但是这个是在.Net 3.5之后才支持的。并且性能上并不优秀。

性能对比图如下:

这是Json.Net 5与.NET内置对象的性能对比图,而现在Json.Net的版本已经到达了 Version 6.0.1 ,相信它会有更好的表现。 JSON.NET是开源的,下载地址: ,这里有完整的源代码,当然也可以参考  这里。

当然通过VS进入Nuget管理包也可以进行下载Json.Net的程序包

下面我们来简单的通过实例进行初步了解JSON.NET。

1、序列化一个对象为json字符串。

2、然后再将字符串反序列化为对象。

3、JSON与XML之间的互转。

4、……当然还有其他格式的转换,我们暂时不进行举例,后面的文章会对此进行比较详细的描述。

Serialize an Object—— 序列化一个对象

首先定义一个实体类对象

public class Account { public string Email { get; set; } public bool Active { get; set; } public DateTime CreatedDate { get; set; } public IList<string> Roles { get; set; } }

实例化实体类,然后进行序列化为Json字符串

Account account = new Account() { Email = , Active = true, CreatedDate = new DateTime(2014, 3, 27, 0, 0, 0, DateTimeKind.Utc), Roles = , } }; string json = JsonConvert.SerializeObject(account, Formatting.Indented);

得到的json字符串结果为

{ : , : true, : , : [ , ] }

Deserialize an Object—— 反序列化一个对象

继续使用上面的实体类

现在是先定义一个Json的字符串,我们也可以将上面生成的Json字符串进行简单的修改,然后进行反序列化处理

string json = @"{ 'Email': 'aehyok@vip.qq.com', 'Active': true, 'CreatedDate': '2014-03-27T00:00:00Z', 'Roles': [ 'aehyok', 'Kris' ] }"; Account account = JsonConvert.DeserializeObject<Account>(json);

通过调试得到的数据为

Convert JSON to XML——将JSON转换为XML

首先还是定义一个Json字符串,然后对其进行转换

string json = @"{ '@Id': 1, 'Email': 'aehyok@viq.qq.com', 'Active': true, 'CreatedDate': '2014-01-20T00:00:00Z', 'Roles': [ 'Kris', 'aehyok' ], 'Team': { '@Id': 2, 'Name': 'Software Developers', 'Description': 'Creators of fine software products and services.' } }"; XNode node = JsonConvert.DeserializeXNode(json, );

转换结果为

Convert XML to JSON——将XML转换为JSON

现在就是需要先定义一个简单的XML字符串,然后对其进行转换处理

string xml = @"<?xml version='1.0' standalone='no'?> <root> <person> <name>aehyok</name> <url></url> </person> <person> <name>Kris</name> <url></url> </person> </root>"; XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); string json = JsonConvert.SerializeXmlNode(doc);

通过调试得到的结果为

其他功能简介

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • AngularJs学习笔记(二)

    AngularJs学习笔记(二)

    2016-10-24 16:00

  • spring入门(七)【springMVC返回json串】,springmvcjson

    spring入门(七)【springMVC返回json串】,springmvcjson

    2016-10-02 11:02

  • JSON快速入门(Java版)

    JSON快速入门(Java版)

    2016-10-02 10:00

  • json学习整理

    json学习整理

    2016-09-20 18:00

网友点评
c