JSON

Json.Net系列教程 1.Json.Net介绍及实例

字号+ 作者:H5之家 来源:H5之家 2015-10-28 19:13 我要评论( )

本系列教程假设读者已经对Json有一定的了解,关于Json在这里不多说.本系列教程希望能对读者开发涉及到Json的.Net项目有一定的帮助.本系列教程是根据官方文档资料和自己项目应用汇总而成.如果觉得本系列对你有用,望多多关注.本人还只是个未毕业的学生,水平有限

本系列教程假设读者已经对Json有一定的了解,关于Json在这里不多说.本系列教程希望能对读者开发涉及到Json的.Net项目有一定的帮助.本系列教程是根据官方文档资料和自己项目应用汇总而成.如果觉得本系列对你有用,望多多关注.本人还只是个未毕业的学生,水平有限,尽请指正.

.Json.Net有什么用?

  Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基本数据类型等)和Json的转换.

  Json.Net目前的版本是4.5 下载

二.为什么要用Json.Net?

  我们知道在.Net中内置了读写Json的对象(DataContractJsonSerializer,JavaScriptSerializer),为什么我们还要用Json.Net呢?
  功能对比: 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  性能对比:

三.实例

下面通过一个实例来展示它在项目的应用.下面的例子是通过Ajax和Json显示所有用户的列表信息.
准备: 创建一个Web项目,本应用程序是通过VS2010创建的.并添加引用Newtonsoft.Json.dll

1.首先创建一个Person对象

包含用户的基本信息 Person { 获取或设置用户名 Name { get; set; } 获取或设置用户年龄 Age { get; set; } 获取或设置用户性别 Gender { get; set; } 获取或设置用户国籍 Country { get; set; } 获取或设置用户电子邮箱 Email { get; set; } }

2.创建用户操作类PersonRepository,用来对Person的操作,本例中仅仅用来获取Person对象列表

用户操作类 PersonRepository { 获取用户列表 List<Person> GetPersons() { List<Person> ps = new List<Person>(); Person p1 = , Age = , Gender = , Email = }; Person p2 = , Age = , Gender = , Email = }; Person p3 = , Age = , Gender = , Email = }; Person p4 = , Age = , Gender = , Email = }; Person p5 = , Age = , Gender = , Email = }; ps.Add(p1); ps.Add(p2); ps.Add(p3); ps.Add(p4); ps.Add(p5); return ps; } }

3.添加一个一般处理程序,我将其命名为PersonHandler.ashx,引入命名空间"using Newtonsoft.Json",修改ProcessRequest函数中的代码如下:

处理用户类的请求 PersonHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { List<Person> persons = PersonRepository.GetPersons(); string json = JsonConvert.SerializeObject(persons); context.Response.Write(json); } public bool IsReusable { get { return false; } } }

通过Json.Net来序列化对象,可以通过

string json = JsonConvert.SerializeObject(Object obj);

 

还可以通过JsonSerializer来实现

JsonSerializer serializer = new JsonSerializer(); StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); JsonWriter writer = new JsonTextWriter(sw); serializer.Serialize(writer, persons); string json = sb.ToString();

这两种方式有什么联系和区别呢?
实际上,JsonConvert.SerializerObject内部就是通过JsonSerializer来实现的.

SerializeObject(object value, Formatting formatting, JsonSerializerSettings settings) { JsonSerializer jsonSerializer = JsonSerializer.Create(settings); StringBuilder sb = new StringBuilder(0x100); StringWriter sw = new StringWriter(sb, CultureInfo.InvariantCulture); using (JsonTextWriter jsonWriter = new JsonTextWriter(sw)) { jsonWriter.Formatting = formatting; jsonSerializer.Serialize(jsonWriter, value); } return sw.ToString(); }

区别在于JsonSerializer序列化时,你可以选择用JsonWriter也可以选择TextWriter.而JsonConvert只是默认使用JsonTextWriter. 

4.添加一个Html网页,网页的内容仅仅用来显示用户的基本信息

<div> <table border=> <thead> <tr> <td> 用户名 </td> <td> 年龄 </td> <td> 性别 </td> <td> 国籍 </td> <td> 电子邮箱 </td> </tr> </thead> <tbody id=> </tbody> </table> </div>

5.添加javascript代码,实现Ajax请求.首先要在头文件中引入JQuery

 

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

相关文章
  • php CI 实战教程:[5]用curl获取json并解析

    php CI 实战教程:[5]用curl获取json并解析

    2016-02-26 17:00

  • Android中JSON数据格式读取解析创建视频教程

    Android中JSON数据格式读取解析创建视频教程

    2016-02-05 19:00

  • HttpClient 4.3教程 第一章 基本概念

    HttpClient 4.3教程 第一章 基本概念

    2016-01-26 16:49

  • JSON知多少-JSON数据结构

    JSON知多少-JSON数据结构

    2016-01-20 19:00

网友点评