Newtonsoft.Json的使用

weixin_30488085發表於2020-04-06
JSON 即 JavaScript Object Natation,它是一種輕量級的資料交換格式,非常適合於伺服器與 JavaScript 的互動。和 XML 一樣,JSON 也是基於純文字的資料格式。詳細資料請點選:https://www.ibm.com/developerworks/cn/web/wa-lo-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; }
        }
    }

序列化

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}
 
反序列化:
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

轉載於:https://www.cnblogs.com/colder/p/4315399.html

相關文章