首先感謝Hunt. C的資料,本文主要引用了他的內容(http://www.cnblogs.com/hunts/archive/2006/11/20/566694.aspx
http://www.cnblogs.com/hunts/archive/2006/11/20/566694.html)
1. 了解JSON
2. 客戶端(如web 網頁)操作
客戶端操作就是把字符串處理成一個JSON對象或者進行相反操作,這么做是因為服務器端往客戶端傳遞的是一個字符串,比如:{"Employees":[{"ID":"1","Name":"Shuang Er"},{"ID":"2","Name":"Tai Ping Princess"}]} (韋小寶的2個老婆),客戶端收到這個字符串以后,需要處理成一個JavaScript對象,從而能進一步使用,比如拼合成HTML顯示出來。
一般來說最好借助一個JavaScript類庫來處理字符串和JSON/JavaScript對象之間的轉換, 我這里用的是https://github.com/douglascrockford/JSON-js,只需要下載和引用json2.js即可
字符串到JSON/JavaScript對象:
var employeeInString = '{"Employees":[{"ID":"1","Name":"ShuangEr"},{"ID":"2","Name":"TaiPing princess"}]} ';
var employeesObject = JSON.parse(employeeInString);
然后可以使用 employees對象了,比如employeesObject.employees[0].Name
(用eval()方法是可以替換parse方法的,但是eval方法有安全性問題,如果數據是用戶數據的盡量不要用它。)
JSON/JavaScript對象到字符串:
var employeeInString = JSON.stringify(employees);
需要注意的是,如果是用jquery.ajax方法,jquery會根據服務器端返回contenttype的值自動把返回值轉換成json對象。
3. 服務器端操作:
這里推薦用這個類庫來進行C#對象和JSON 字符串之間的轉換: http://json.codeplex.com/releases/view/94220
假設有個Employee類:
public class Employee {
public int ID {get;set;} public string Name {get;set;}
}
C#對象到JSON格式的String:
Employee employee = new Employee();
employee.ID = 1;
employee.Name = "shuang er";
string employeeInJSONString = JsonConvert.SerializeObject(employee);
employeeInJSONString的值為:{"ID":1,"Name":"shuang er"}
往回轉化就更簡單了:
Employee deserializedEmployee = (Employee)JsonConvert.DeserializeObject(
employeeInJSONString , typeof(Employee));
