zoukankan      html  css  js  c++  java
  • 在.NET使用Newtonsoft.Json转换,读取,写入json

    首先,大家要明白什么是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
    http://blog.sina.com.cn/s/blog_70686f3a0101kemg.html
  • 相关阅读:
    BZOJ 2212/BZOJ 3702
    BZOJ 4761 Cow Navigation
    BZOJ 3209 花神的数论题
    BZOJ 4760 Hoof, Paper, Scissors
    BZOJ 3620 似乎在梦中见过的样子
    BZOJ 3940 Censoring
    BZOJ 3942 Censoring
    BZOJ 3571 画框
    BZOJ 1937 最小生成树
    BZOJ 1058 报表统计
  • 原文地址:https://www.cnblogs.com/Echo529/p/6386802.html
Copyright © 2011-2022 走看看