在.NET使用Newtonsoft.Json轉換,讀取,寫入json

chelen_jak發表於2016-07-18

原文出處:http://blog.sina.com.cn/s/blog_70686f3a0101kemg.html

    首先,大家要明白什麼是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://www.jb51.net/article/19806.htm
前端可用JSON.parse()函式將字串轉成JavaScript JSON物件,如下圖



相關文章