Json.NET目前出到3.0版,支援.NET 3.5,同時也有實作LINQ功能,這意味著你可以用LINQ做查詢,著實方便不少。下面是網站上所列出的功能:
- LINQ to JSON
- Lightning fast JsonReader and JsonWriter
- The JsonSerializer for quickly converting your .NET objects to JSON and back again
- Json.NET can optionally produce well formatted, indented JSON for debugging or display
- Attributes like JsonIgnore and JsonProperty can be added to a class to customize how a class is serialized
- Ability to convert JSON to and from XML
這邊簡單翻譯一下,也就是Json.NET提供:
- 前面提到的LINQ查詢
- 提供讀取、寫入json的功能
- 可以讓.NET物件序列化為json格式,同時能轉換回.NET物件
- 定義你的類別如何轉換為json格式
- 支援XML功能
下面的例子說明如何使用Json.NET
首先示範如何將物件轉為JSON(以ASP.NET專案做說明)。
撰寫Book類別,等會要將它轉為JSON:
在類別宣告的上方,必須加入JsonObject()這一行,表示它是可以序列化為JsonObject,而MemberSerialization.OptIn的意思則是程式設計師自己必須指定哪些屬性要序列化,哪些不用。如果要序列化全部的屬性,可以改為MemberSerialization.OptOut。
接著示範如何序列化。
JsonSerializer類別提供將物件轉為JSON的功能,但是還需要一個JsonWriter才能輸出結果,而宣告JsonWriter需要一個StringWriter(或是TextWriter)。上述程式碼的執行結果為:
接下來再加入兩行程式碼:
這個是將前面轉出來的JSON字串再轉回物件,執行結果為:
在Web服務愈來愈流行的情況下,程式設計師多少都會碰到這方面的東西,為了免去繁雜的Coding,學習使用Json.NET這類的Library絕對有其必要。
參考資料
菸酒生,你的文章生產速率還真是快啊@@!
回覆刪除那是因為剛好有題材可以寫啊,不過下一篇就會隔久一點了...
回覆刪除