.NET2.0下的對象生成JSON數據

前言:今天研究了下在.NET2.0環境下開發Ajax程序常常用到的一個數據類型JSON,html

1、什麼是JSON?

本身也寫不了句子不是很專業,下面是百度百科的關於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官網上有不少的第三方的開源框架:瀏覽器

  1. fastJSON.
  2. JSON_checker.
  3. Jayrock.
  4. Json.NET - LINQ to JSON.
  5. LitJSON.
  6. JSON for .NET.
  7. JsonFx.
  8. JSONSharp.
  9. JsonExSerializer.
  10. fluent-json
  11. Manatee Json

這些都在JSON官網上看到的C#經常使用JSON框架,對於.net2.0來講我以爲用LitJSON這個開源的第三方框架就好了。app

2、LitJSON框架的使用

首先要先下載這裏官網地址:http://lbv.github.io/litjson/框架

最新的版本是:litjson-0.7.0 ,測試環境(VS2010)測試

首先、先對項目進行添加引用這個就不用說了吧。還要在使用的類用添加命名空間。

提醒:在對一個對象轉化成JSON中這個框架對漢字進行了從新的編碼,可是在瀏覽器下又顯示正常,暫時沒有發現什麼麻煩

把一個類型軟化爲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"}

把一個JSON對象轉化成jsonData類型方便C#操做

在這裏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集合轉化成一個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

相關文章
相關標籤/搜索