首先感谢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));