今天在論壇上看見一則討論
點部落的另外一位網友 -- kyleshen 有兩篇文章很淺顯易懂(超連結在文章最後面),推薦給大家。
但在觀看這兩篇文章以前,可以從這些文章入門
========================================================================================
一圖解千言,看了立刻懂
===============================================================================
2014/5/14補充:
VS 2013 Update 2推出以後,有提供 JSON file幫您做驗證,有助您撰寫JSON文檔
(點選圖片,可連到原文)
ASP.NET的朋友通常會用到 JSON.NET
JSON.NET 網站的首頁就有很簡單的範例,解釋這些事情:
(1). Serialize JSON(我個人的註解:這就是組成、產生JSON格式的內容)
Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Sizes = new string[] { "Small" };
string json = JsonConvert.SerializeObject(product);
//{
// "Name": "Apple",
// "Expiry": "2008-12-28T00:00:00",
// "Sizes": [
// "Small"
// ]
//}
(2). Deserialize JSON(我個人的註解:這就是讀取JSON格式的內容)
string json = @"{
'Name': 'Bad Boys',
'ReleaseDate': '1995-4-7T00:00:00',
'Genres': [
'Action',
'Comedy'
]
}";
Movie m = JsonConvert.DeserializeObject(json);
string name = m.Name;
// Bad Boys
(3). LINQ to JSON(我個人的註解:如果資料量太大,您可以動手寫LINQ-to-SQL去查詢)
JArray array = new JArray();
array.Add("Manual text");
array.Add(new DateTime(2000, 5, 23));
JObject o = new JObject();
o["MyArray"] = array;
string json = o.ToString();
// {
// "MyArray": [
// "Manual text",
// "2000-05-23T00:00:00"
// ]
// }
(4). Validate JSON(我個人的註解:驗證JSON格式的內容,驗證後才能取用。XML格式也常常需要驗證,已符合Schema)
JsonSchema schema = JsonSchema.Parse(@"{
'type': 'object',
'properties': {
'name': {'type':'string'},
'hobbies': {'type': 'array'}
}
}");
JObject person = JObject.Parse(@"{
'name': 'James',
'hobbies': ['.NET', 'LOLCATS']
}");
bool valid = person.IsValid(schema);
// true
JSON.NET的文件與範例都在這裡,相信您看了一次,就會知道怎麼用它
完成上面的入門以後,相信後續的文章就能看得懂了。
微軟 msdn這個範例也很淺顯喔!
點部落的另外一位網友 -- kyleshen 有兩篇文章
如何在前端傳遞JSON物件至後端接收
介紹如何從後端組出JSON物件,回傳至前端接收。
相關的文章可以參閱:
[入門] JSON.NET 入門 ( from johnny )
微軟MVP小歐也有撰寫序列化的三篇文章:
微軟 msdn文件 -- 序列化
除了上文提到的 JSON.NET之外
微軟自從 .NET 3.5起,也有推出 JavaScriptSerializer 類別
System.Web.Script.Serialization 命名空間包含可用來對 Managed 型別進行 JavaScript Object Notation (JSON) 序列化和還原序列化的類別。 它也提供了自訂序列化行為的擴充性功能。
類別 | 說明 | |
---|---|---|
JavaScriptConverter | 為自訂型別轉換子提供抽象基底類別。 | |
JavaScriptSerializer | 為具有 AJAX 能力的應用程式提供序列化和還原序列化功能。 | |
JavaScriptTypeResolver | 提供實作自訂型別解析程式的抽象基底類別。 | |
ScriptIgnoreAttribute | 指定 JavaScriptSerializer 不會將公用屬性或公用欄位序列化。 此類別無法被繼承。 | |
SimpleTypeResolver | 提供 Managed 型別的型別解析程式。 |
沒有留言:
張貼留言