[.Net C# MVC] JsonConvert 執行 Serialize序列化與Deserialize反序列

JSON 介紹

JSON 是一種簡單輕量的資料交換格式。可用 陣列 [ ] 與 物件 { } 來寫入資料,
資料的名稱與值使用 name : value 表示,名稱與值的中間以 : 隔開。
範例如下:

[{"Age":30,"Name":"Bill"},{"Age":28,"Name":"Jeson"}] 

本文介紹基本的物件轉換為文字[Serialize],及再將文字轉換為物件[Deserialize]的範例

引用元件

到官網下載JSON.NET,將Newtonsoft.Json.dll加入至參考。
加入using,便可使用JSON.NET。

using Newtonsoft.Json;

Serializing序列化

將建立的物件序列化成 json 文字

public ActionResult JsonConvertView()
{
	// 建立物件
	ArrayList aryPeople = new ArrayList();
	Hashtable htPeople = new Hashtable();
	htPeople["Name"] = "Bill";
	htPeople["Age"] = 30;
	aryPeople.Add(htPeople);
	htPeople = new Hashtable();
	htPeople["Name"] = "Jeson";
	htPeople["Age"] = 28;
	aryPeople.Add(htPeople);
	// 序列化
	string jsonString = JsonConvert.SerializeObject(aryPeople);

	ViewBag.jsonString = jsonString; // 輸出結果

	return View();
}

前端頁面顯示結果

Deserialize反序列

將剛剛的json 文字再轉換回原本的物件

public ActionResult JsonConvertView()
{
	// 建立物件
	ArrayList aryPeople = new ArrayList();
	Hashtable htPeople = new Hashtable();
	htPeople["Name"] = "Bill";
	htPeople["Age"] = 30;
	aryPeople.Add(htPeople);
	htPeople = new Hashtable();
	htPeople["Name"] = "Jeson";
	htPeople["Age"] = 28;
	aryPeople.Add(htPeople);
	// 序列化
	string jsonString = JsonConvert.SerializeObject(aryPeople);

	ViewBag.jsonString = jsonString; // 輸出結果

	// 將剛剛的文字轉換為物件
	ArrayList aryNewPeople = JsonConvert.DeserializeObject<ArrayList>(jsonString);

	ViewBag.aryNewPeople = aryNewPeople; //輸出結果
	return View();
}

前端頁面顯示結果