[轉貼]jQuery與JSON的資料傳遞(網頁前段與後端的資料傳遞 - 序列化 Serialization) from kyleshen

摘要:[轉貼]jQuery與JSON的資料傳遞 from kyleshen
(網頁前段與後端的資料傳遞 - 序列化 Serialization)

 

 

 

今天在論壇上看見一則討論

點部落的另外一位網友 -- kyleshen 有兩篇文章很淺顯易懂(超連結在文章最後面),推薦給大家。

 

但在觀看這兩篇文章以前,可以從這些文章入門

========================================================================================

你不可不知的 JSON 基本介紹 ( from  AppleBOY )

   http://blog.wu-boy.com/2011/04/%E4%BD%A0%E4%B8%8D%E5%8F%AF%E4%B8%8D%E7%9F%A5%E7%9A%84-json-%E5%9F%BA%E6%9C%AC%E4%BB%8B%E7%B4%B9/

陳鍾誠老師的文章  http://ccc.nqu.edu.tw/wd.html#js:object

 
 
一圖解千言,看了立刻懂
    
===============================================================================

2014/5/14補充:

      VS 2013 Update 2推出以後,有提供 JSON file幫您做驗證,有助您撰寫JSON文檔

      詳見 http://blogs.msdn.com/b/webdev/archive/2014/05/12/announcing-new-web-features-in-visual-studio-2013-update-2-rtm.aspx

clip_image002[5]

clip_image004

(點選圖片,可連到原文)

 

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的文件與範例都在這裡,相信您看了一次,就會知道怎麼用它

http://james.newtonking.com/json/help/index.html

 

 

完成上面的入門以後,相信後續的文章就能看得懂了。

 

微軟 msdn這個範例也很淺顯喔!

http://msdn.microsoft.com/zh-tw/library/hh923971(v=vs.85).aspx

 

點部落的另外一位網友 -- kyleshen 有兩篇文章

如何在前端傳遞JSON物件至後端接收
 
 
介紹如何從後端組出JSON物件,回傳至前端接收。

 

相關的文章可以參閱:

 

使用jQuery傳送物件JSON到ASP.NET MVC(from 黑暗執行緒)

http://blog.darkthread.net/post-2013-12-23-post-json-to-aspnet-mvc.aspx

 
[入門] JSON.NET 入門  ( from johnny )

 

微軟MVP小歐也有撰寫序列化的三篇文章:

序列化(1) - 概述- 小歐ou | 菜鳥自救會- 點部落

序列化(2) – 選擇性序列化物件成員

序列化(3) – 自訂序列化行為

 

微軟 msdn文件 -- 序列化

http://msdn.microsoft.com/zh-tw/library/ms233843.aspx

 

 

 

除了上文提到的 JSON.NET之外

微軟自從 .NET 3.5起,也有推出 JavaScriptSerializer 類別

 
System.Web.Script.Serialization 命名空間包含可用來對 Managed 型別進行 JavaScript Object Notation (JSON) 序列化和還原序列化的類別。 它也提供了自訂序列化行為的擴充性功能。
  類別 說明
公用類別 JavaScriptConverter 為自訂型別轉換子提供抽象基底類別。
公用類別 JavaScriptSerializer 為具有 AJAX 能力的應用程式提供序列化和還原序列化功能。
公用類別 JavaScriptTypeResolver 提供實作自訂型別解析程式的抽象基底類別。
公用類別 ScriptIgnoreAttribute 指定 JavaScriptSerializer 不會將公用屬性或公用欄位序列化。 此類別無法被繼承。
公用類別 SimpleTypeResolver 提供 Managed 型別的型別解析程式。

 

 

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

線上課程教學,遠距教學 (Web Form 約 51hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程教學,遠距教學 (ASP.NET MVC 約 135hr)  https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab

 

寫信給我,不要私訊 --  mis2000lab (at) yahoo.com.tw  或  school (at) mis2000lab.net

 (1) 第一天 ASP.NET MVC5 完整影片(5.5小時 / .NET 4.x版)免費試聽。影片 https://youtu.be/9spaHik87-A 

 (2) 第一天 ASP.NET Core MVC 完整影片(3小時 / .NET Core 6.0~8.0)免費試聽。影片 https://youtu.be/TSmwpT-Bx4I 

[學員感言] mis2000lab課程評價 - ASP.NET MVC , WebForm  。 https://mis2000lab.medium.com/%E5%AD%B8%E5%93%A1%E6%84%9F%E8%A8%80-mis2000lab%E8%AA%B2%E7%A8%8B%E8%A9%95%E5%83%B9-asp-net-mvc-webform-77903ce9680b  


ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。 

.........   facebook社團   https://www.facebook.com/mis2000lab   ......................

.........  YouTube (ASP.NET) 線上教學影片  https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/

 

Blog文章 "附的範例" 無法下載,請看 https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download

請看我們的「售後服務」範圍(嚴格認定)。

...................................................................................................................................................... 

ASP.NET MVC  => .NET Core MVC 線上教學  ...... 第一天課程 完整內容 "免費"讓您評估 / 試聽

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講   事先錄好的影片,並非上課側錄!   觀看時,有如「一對一」面對面講課