在.NET使用Newtonsoft.Json转换,读取,写入json
2015-06-12 15:03
716 查看
首先,大家要明白什么是json,了解更多关于json方面资料大家可以点击https://www.ibm.com/developerworks/cn/web/wa-lo-json/ ,我在这里简单介绍下json:
JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。和 XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的 Object 对象。
在.NET环境下面,我们使用Json.net来实现JSON数据的序列化和反序列化。
首先点击连接http://sourceforge.net/projects/csjson/?source=dlp 下载JSON .NET插件和代码。
然后在项目中进行引用Newtonsoft.Json.dll
添加命名空间:using Newtonsoft.Json;
下面介绍json序列化和反序列化的放个重要方法和例子:
JsonConvert.SerializeObject(object value)序列化,它有个重载方法JsonConvert.SerializeObject(object value, params JsonConverter[] converters)。
JsonConvert.DeserializeObject(string value, Type type),反序列化,它有个重载方法JsonConvert.DeserializeObject(string value, Type type, params JsonConverter[] converters)
这两个方法可以实现基本的序列化和反序列化要求,请看下面的例子:
首先我们先建一个Person类代码如下:
JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。和 XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的 Object 对象。
在.NET环境下面,我们使用Json.net来实现JSON数据的序列化和反序列化。
首先点击连接http://sourceforge.net/projects/csjson/?source=dlp 下载JSON .NET插件和代码。
然后在项目中进行引用Newtonsoft.Json.dll
添加命名空间:using Newtonsoft.Json;
下面介绍json序列化和反序列化的放个重要方法和例子:
JsonConvert.SerializeObject(object value)序列化,它有个重载方法JsonConvert.SerializeObject(object value, params JsonConverter[] converters)。
JsonConvert.DeserializeObject(string value, Type type),反序列化,它有个重载方法JsonConvert.DeserializeObject(string value, Type type, params JsonConverter[] converters)
这两个方法可以实现基本的序列化和反序列化要求,请看下面的例子:
首先我们先建一个Person类代码如下:
public class Person { private string name; public string Name { get { return name; } set { name = value; } } private int age; public int Age { get { return age; } set { age = value; } } } //1)序列化 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Newtonsoft.Json; namespace JSONnet { public partial class test : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Person person = new Person(); person.Name = "GoldenEasy"; person.Age = 25; string strSerializeJSON = JsonConvert.SerializeObject(person); Response.Write(strSerializeJSON); } } } //输出结果: //{"Name":"GoldenEasy","Age":25} //2)反序列化 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Newtonsoft.Json; namespace JSONnet { public partial class test : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Person person = new Person(); person.Name = "GoldenEasy"; person.Age = 25; string strSerializeJSON = JsonConvert.SerializeObject(person); Person user = (Person)JsonConvert.DeserializeObject(strSerializeJSON, typeof(Person)); Response.Write(user.Name); } } } //输出结果为:GoldenEasy
相关文章推荐
- JS中给数组对象排序
- JavaScript
- JavaScript prototype 属性详解
- JavaScript面向对象编程——构造函数继承
- html table表数据转Json格式
- 【原生js】js面向对象三大特征之封装笔记
- 学习Javascript闭包(Closure)
- 什么是JavaScript?
- Javascript类型转换表
- JavaScript开发的45个经典技巧
- Javascript学习总结-技巧、实用函数、简介方法、编程细
- 跳转时让JSON请求并刷新
- JavaScript-demo
- JSF 2.0 Facelets 的模板技术
- bzoj 1015: [JSOI2008]星球大战starwar 并查集
- JSON小结
- 让JavaScript在Visual Studio 2015中编辑得更容易
- extjs3.4-moneyfield.js改写
- 坑人的 Javascript 模块化编程 sea.js
- 坑人的 Javascript 模块化编程 require.js