程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> Json.Net6.0入門學習試水篇

Json.Net6.0入門學習試水篇

編輯:C#入門知識

  JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。簡單地說,JSON 可以將 JavaScript 對象中表示的一組數據轉換為字符串,然後就可以在函數之間輕松地傳遞這個字符串,或者在異步應用程序中將字符串從 Web 客戶機傳遞給服務器端程序。這個字符串看起來有點兒古怪,但是 JavaScript 很容易解釋它,而且 JSON 可以表示比"名稱 / 值對"更復雜的結構。例如,可以表示數組和復雜的對象,而不僅僅是鍵和值的簡單列表。

  它所具有的特性:

  1、Flexible JSON serializer for converting between .NET objects and JSON ——

  2、LINQ to JSON for manually reading and writing JSON ——LINQ to JSON用於手動讀寫Json

  3、High performance, faster than .NET's built-in JSON serializers——高性能,比.NET內置的JSON序列化程序速度要更快

  4、Writes indented, easy to read JSON ——縮排書寫,使得Json易讀

  5、Convert JSON to and from XML——支持JSON 與 XML 兩種格式相互轉換

  6、Supports .NET 2 .NET 3.5 .NET 4, Silverlight, Windows Phone and Windows 8——支持.NET2.NET3.5.NET4,Silverlight,Windows Phone和Windows 8

  在.Net中內置了讀寫Json的對象就是 DataContractJsonSerializerJavaScriptSerializer這兩個。但是這個是在.Net 3.5之後才支持的。並且性能上並不優秀。

  性能對比圖如下:

  

這是Json.Net 5與.NET內置對象的性能對比圖,而現在Json.Net的版本已經到達了Version 6.0.1 ,相信它會有更好的表現。JSON.NET是開源的,下載地址:http://json.codeplex.com/,這裡有完整的源代碼,當然也可以參考http://james.newtonking.com/ 這裡。

當然通過VS進入Nuget管理包也可以進行下載Json.Net的程序包

 

下面我們來簡單的通過實例進行初步了解JSON.NET。

1、序列化一個對象為json字符串。

2、然後再將字符串反序列化為對象。

3、JSON與XML之間的互轉。

4、……當然還有其他格式的轉換,我們暫時不進行舉例,後面的文章會對此進行比較詳細的描述。

首先定義一個實體類對象

       Email { ;   Active { ;  DateTime CreatedDate { ;  IList<> Roles { ; 

實例化實體類,然後進行序列化為Json字符串

            Account account = = = =  DateTime(, , , , , =  List<>{, json = JsonConvert.SerializeObject(account, Formatting.Indented);

得到的json字符串結果為

: : : 

繼續使用上面的實體類

現在是先定義一個Json的字符串,我們也可以將上面生成的Json字符串進行簡單的修改,然後進行反序列化處理

             json = = JsonConvert.DeserializeObject<Account>(json);

通過調試得到的數據為

首先還是定義一個Json字符串,然後對其進行轉換

             json = = JsonConvert.DeserializeXNode(json, );

轉換結果為

現在就是需要先定義一個簡單的XML字符串,然後對其進行轉換處理

             xml = =  json = JsonConvert.SerializeXmlNode(doc);

通過調試得到的結果為

1、Linq to JSON是用來操作JSON對象的。可以用於快速查詢、修改、刪除和創建JSON對象。當JSON對象內容比較復雜,而我們僅僅需要其中的一小部分數據時,可以考慮使用Linq to JSON來讀取和修改部分的數據而非反序列化全部。

2、Json.Net不僅支持序列化和反序列化對象,還支持XML和JSON之間的轉換。它支持的數據類型與JSON之間的轉換,例如:DataSet、DataTable、Entity Framework和NHibernate、Collection、Dictionary、Dynamic等等,大部分的數據類型基本都支持。

3、JSON.NET支持BSON數據的序列化和反序列化。

BSON(Binary Serialized Document Format)是一種類json的一種二進制形式的存儲格式,簡稱Binary JSON,它和JSON一樣,支持內嵌的文檔對象和數組對象,但是BSON有JSON沒有的一些數據類型,如Date和BinData類型。

 4、JSON Schema 用於描述JSON數據的結構和類型。如同DTD與XML的關系。

  暫時我了解了這麼多的功能。總之,它對於一些什麼為空處理、日期格式控制、忽略屬性轉換等等的一些配置處理,都做的非常不錯,有關詳細介紹會在後續學習之後,進行總結記錄介紹。

 

英語小貼士

get out of here。——滾蛋。

none of your business。 ——關你屁事。

I can't follow your step。——我跟不上你的節奏了。

作者:aehyok

出處:http://www.cnblogs.com/aehyok/

感謝您的閱讀,如果您對我的博客所講述的內容有興趣,那不妨點個推薦吧,謝謝支持:-O。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved