欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C#教程

當(dāng)前位置:主頁 > 軟件編程 > C#教程 >

淺談C#.NET、JavaScript和JSON

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C#教程|點擊: 次

寫在前面

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

一、什么是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í)或者工作能帶來一定的幫助,同時也希望多多支持我們!

上一篇:C#中WebClient實現(xiàn)文件下載

欄    目:C#教程

下一篇:c# 中文轉(zhuǎn)拼音without CJK

本文標題:淺談C#.NET、JavaScript和JSON

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/5942.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有