前言:今天研究了下在.NET2.0環境下開發Ajax程序常常用到的一個數據類型JSON,html
本身也寫不了句子不是很專業,下面是百度百科的關於JSON的介紹:git
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基於JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON採用徹底獨立於語言的文本格式,可是也使用了相似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成爲理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成。github
若是曾經使用過Json,就會清楚Json能夠分爲兩個部分:web
1. Json Object(A collection of name/value pairs)json
2. JSON Array (An ordered list of values)數組
對於在.NET2.0環境下把對象序列成一個JSON對象在C#2.0這個版本中並無相關的類庫,固然在JSON官網上有不少的第三方的開源框架:瀏覽器
這些都在JSON官網上看到的C#經常使用JSON框架,對於.net2.0來講我以爲用LitJSON這個開源的第三方框架就好了。app
首先要先下載這裏官網地址:http://lbv.github.io/litjson/框架
最新的版本是:litjson-0.7.0 ,測試環境(VS2010)測試
首先、先對項目進行添加引用這個就不用說了吧。還要在使用的類用添加命名空間。
提醒:在對一個對象轉化成JSON中這個框架對漢字進行了從新的編碼,可是在瀏覽器下又顯示正常,暫時沒有發現什麼麻煩
Person person = new Person(); person.Name = "張曉天"; person.Age = 21; person.Address = "中國河南省平頂山"; string json_per = JsonMapper.ToJson(person); context.Response.Write(json_per);
輸出的結果:
{"Name":"\u5F20\u6653\u5929","Age":21,"Address":"\u4E2D\u56FD\u6CB3\u5357\u7701\u5E73\u9876\u5C71"}
在這裏LitJson把一個JSON對象序列成了C#能夠操做的數據類型JsonData
string json = @"{""name"":""李梅"",""sex"":""女"",""address"":{""Country"":""中國"",""pro"":""河南省""},""arry"":[""數組內容一"",""數組內容二""]}"; Context.Response.Write("json原數據是:" + json + "<br/>"); JsonData data = JsonMapper.ToObject(json); Context.Response.Write("對json操做後的取值:<br/>省份:" + data["address"]["pro"] + "<br/>" + data["arry"][0]);
輸出的結果:
json原數據是:{"name":"李梅","sex":"女", "address":{"Country":"中國","pro":"河南省"}, "arry":["數組內容一","數組內容二"] } 對json操做後的取值: 省份:河南省
List<Person> list = new List<Person>(); //序列化的list Person p1 = new Person(); p1.Name = "張曉天"; p1.Age = 21; p1.Address = "河南省平頂山"; list.Add(p1); Person p2 = new Person(); p2.Name = "李梅"; p2.Age = 22; p2.Address = "河南省商丘"; list.Add(p2); string json_txt = JsonMapper.ToJson(list); Context.Response.Write(json_txt);
輸出的結果:
數組內容一[{"Name":"\u5F20\u6653\u5929","Age":21,"Address":"\u6CB3\u5357\u7701\u5E73\u9876\u5C71"},{"Name":"\u674E\u6885","Age":22,"Address":"\u6CB3\u5357\u7701\u5546\u4E18"}]
這就是測試的內容當對於LitJson.dll這個框架還有兩個我沒有寫出來,官網有對應的說明文檔在這裏:http://lbv.github.io/litjson/docs/quickstart.html