使用Newtonsoft.Json.dll 提供的类JavaScriptConvert,可以很方便的将c#中定义的list<T>、类等结构转化为json字符串,这样做的好处是:前台的js代码如果要获得后台的复杂数据,可以先将后台的数据装在list<T>或者一个类的实体中,然后序列化成json字符串,赋值给前台的js,js就可以直接使用或者用query中的each函数遍历。
使用Newtonsoft.Json.dll将list<T>、类等结构转化为json的做法:
1、本项目直接引用Newtonsoft.Json.dll,或者引用含有这个dll的项目;
2、在代码中注明:using Newtonsoft.Json;
3、示例代码如下:
// ---------序列化一个list<string>---------------
List<string>lst = new List<string>();
lst.Add("aaaaa"); lst.Add("bbbbb"); lst.Add("ccccc");
string jsonStr = JavaScriptConvert.SerializeObject(lst);
结果是: jsonStr= ["aaaaa"," bbbbb "," ccccc "]
// ----------------序列化一个list<string>-------------------
// 定义了类 test
public classtest
{
publicstring str;
publicint i;
publicdouble j;
publicList<string>ls;
}
testt = new test();
t.str ="abc";
t.i =1000;
t.j =300.222;
t.ls = new List<string>();
t.ls.Add("aaaaaaaaaa");t.ls.Add("bbbbbbbbbb"); t.ls.Add("cccccccc");
jsonStr= JavaScriptConvert.SerializeObject(t);
结果是:jsonStr= { "str":"abc","i":1000,"j":300.222,"ls":["aaaaaaaaaa","bbbbbbbbbb","cccccccc"]}
总结:一个list实体,序列化后,成为一个数组;一个类的实体,序列化后成为{ "key1":"value1","key2":"value2"… }这样的结构,key是类中成员名称,value是成员的值。