您的位置:首页 > Web前端 > JavaScript

c# 在.NET使用Newtonsoft.Json转换,读取,写入json

2016-05-03 21:31 543 查看
首先,大家要明白什么是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类代码如下:

  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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: