亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談C#.NET、JavaScript和JSON

 更新時間:2017年02月04日 16:44:45   作者:失落の熊熊  
本文介紹了C#.NET、JavaScript和JSON的相關(guān)知識,具有很好的參考價值,下面跟著小編一起來看下吧

寫在前面

全部手打,沒有多余的話,全部干貨,基本上用到的我就記錄了。

一、什么是JSON

JSON:JavaScript Object Notation,是一種輕量級的數(shù)據(jù)交互格式,主要用于數(shù)據(jù)傳輸。

二、JSON語法規(guī)則

 1、數(shù)據(jù)由鍵值對(映射)關(guān)系表示,使用 “:” 表示;

   例子:"name" : "趙大"。

 2、數(shù)據(jù)之間使用 “,” 分隔;

  例子:"name" : "趙大", "age" : "27"。

 3、數(shù)據(jù)映射的集合(對象)用 “{}” 包含;

  例子:一條學(xué)生數(shù)據(jù)對象:

  {"id" : "1", "name" : "趙大", "age" : "27", "gender" : "男"}

 4、并列數(shù)據(jù)的集合(對象的數(shù)組形式)用 “[]”包含,之間用 “,”分隔;

  例子:兩條學(xué)生數(shù)據(jù)對象數(shù)組:

  [{"id" : "1", "name" : "趙大", "age" : "27", "gender" : "男"}, {"id" : "2", "name" : "錢二", "age" : "27", "gender" : "男"}]

三、JSON數(shù)據(jù)中的數(shù)據(jù)類型

  • 數(shù)字   (整數(shù)或者浮點數(shù))
  • 字符串(在雙引號中)
  • 布爾值(True或False)
  • 數(shù)組   (在[]中)
  • 對象   (在{}中)
  • NULL

四、JSON格式數(shù)據(jù)的數(shù)據(jù)表現(xiàn)

  通過JSON的語法規(guī)則可知,JSON數(shù)據(jù)一般有以下幾種表現(xiàn)形式:

  1、單對象;

  2、對象集合(數(shù)組);

  3、1和2的組合:嵌套;

  4、純字符串;

五、C#.NET與JSON

  在C#.NET環(huán)境下有對JSON序列化和反序列化支持的組件,也有第三方的組件,

  .NET支持的有 JavaScriptSerializer 類和 DataContractJsonSerializer 類,

  第三方支持的有 Json.net(newtonsoft.json)等。

 1、使用 JavaScriptSerializer 類對JSON數(shù)據(jù)序列化和反序列化:

  首先得在引用中引用:System.Web.Extentions.dll

  類文件中做引用:using System.Web.Script.Serialization;  

Dictionary<string, string> stu = new Dictionary<string, string>();
      stu.Add("id", "1");
      stu.Add("name", "趙大");
      stu.Add("age", "27");
      stu.Add("gender", "男");
      JavaScriptSerializer js = new JavaScriptSerializer();
      string stuJson = js.Serialize(stu);
      Console.WriteLine("使用 JavaScriptSerializer 類序列化得到JSON格式數(shù)據(jù):");
      Console.WriteLine(stuJson);

示例:JSON單對象序列化
string deJson = stuJson;
      Dictionary<string, string> deStu = js.Deserialize<Dictionary<string, string>>(deJson);
      Console.WriteLine("使用 JavaScriptSerializer 類將JSON格式數(shù)據(jù)反序列化指定類:");
      foreach (string s in stu.Keys)
      {
        Console.WriteLine(s.ToString() + "=" + stu[s].ToString());
      }
      Console.ReadLine();

示例:JSON單對象反序列化

運行結(jié)果:

 

 2、使用第三方支持的 Json.net(newtonsoft.json)類庫對JSON數(shù)據(jù)序列化和反序列化:

  參考地址:http://www.newtonsoft.com/json

六、JavaScript與JSON

 1、JavaScript中自定義JSON字符串并解析;

  例子:學(xué)生趙大信息:

function myJson() {
      var stu = { "id": "1", "name": "趙大", "age": "27", "gender": "男", "school": { "class": "03", "teacher": "趙大的老師" } };
      alert("id=" + stu.id + ", " + "name=" + stu.name + ", " + "age=" + stu.age + ", " + "gender=" + stu.gender);
    }

效果圖:

 

 可以看到自定義的JSON字符串后,在使用stu這個對象可以自動識別為成員變量了。

   2、從后臺傳入的JSON數(shù)據(jù)通過解析后轉(zhuǎn)化為JSON數(shù)據(jù)對象:

  例子:學(xué)生趙大信息(這里的Ajax請求用JQuery處理了):

$(document).ready(function () {
      $.ajax({
        url: "AjaxWeb.ashx",
        type: "GET",
        dataType: "JSON",
        success: function (data) {
          var stu = JSON.parse(data);
          alert("id=" + stu.id + ", " + "name=" + stu.name + ", " + "age=" + stu.age + ", " + "gender=" + stu.gender + ", " + "teacher=" + stu.school["teacher"]);
        },
        error: function (e) {
          alert(e.toString());
        }
      })
    })

從后臺獲取JSON字符串后轉(zhuǎn)化為JSON對象
public void ProcessRequest(HttpContext context)
    {
      context.Response.Write(myJson2());
    }
    private string myJson2()
    {
      string json = " {\"id\": \"1\", \"name\": \"趙大\", \"age\": \"27\", \"gender\": \"男\(zhòng)", \"school\": { \"class\": \"03\", \"teacher\": \"趙大的老師\" }}";
      JavaScriptSerializer js = new JavaScriptSerializer();
      json = js.Serialize(json);
      return json;
    }

后臺處理文件代碼

效果圖:

 

Chrome下F12開發(fā)人員工具調(diào)試效果圖:

七、參考資料

百度百科

百度搜索

慕課網(wǎng)(http://www.imooc.com/

JSON在線校驗與排版美化(http://jsonlint.com/

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

最新評論