欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談C#.NET、JavaScript和JSON

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

寫(xiě)在前面

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

一、什么是JSON

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

二、JSON語(yǔ)法規(guī)則

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

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

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

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

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

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

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

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

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

  [{"id" : "1", "name" : "趙大", "age" : "27", "gender" : "男"}, {"id" : "2", "name" : "錢(qián)二", "age" : "27", "gender" : "男"}]

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

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

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

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

  1、單對(duì)象;

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

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

  4、純字符串;

五、C#.NET與JSON

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

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

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

 1、使用 JavaScriptSerializer 類對(duì)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單對(duì)象序列化
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單對(duì)象反序列化

運(yùn)行結(jié)果:

 

 2、使用第三方支持的 Json.net(newtonsoft.json)類庫(kù)對(duì)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這個(gè)對(duì)象可以自動(dòng)識(shí)別為成員變量了。

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

  例子:學(xué)生趙大信息(這里的Ajax請(qǐng)求用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());
        }
      })
    })

從后臺(tái)獲取JSON字符串后轉(zhuǎn)化為JSON對(duì)象
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;
    }

后臺(tái)處理文件代碼

效果圖:

 

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

七、參考資料

百度百科

百度搜索

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

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

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

相關(guān)文章

最新評(píng)論