zoukankan      html  css  js  c++  java
  • using System.Web.Script.Serialization

      JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯。这些特性使JSON成为理想的数据交换语言。
    项目中添加引用,找到这个名称的dll,加入.net 3.5添加以下引用~Frameworkv3.5System.Web.Extensions.dll

    JSON建构于两种结构
        1、“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表 (hash table),有键列表(keyed list),或者关联数组 (associative array)。      示例:{"UserID":11, "Name":"Froog"};
        2、值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。 如:     示例:var Users=[{"userID":"1","Name":"Froog","friends":["Jack","Zack","Justin"]},              {"userID":"2","Name":"Zack","friends":["Jack","Zack","Justin"]},              {"userID":"3","Name":"Justin","friends":["Jack","Zack","Justin"]}
    这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交号)分隔。
    JSON具有以下这些形式:      对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。      数组是 值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔值(value)可以是双引号括 起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。      字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。 NET中通过JavaScriptSerializer类操作JSON对象 示例代码:

    1. JavaScriptSerializer json = new JavaScriptSerializer();
    2. // 反序列化JSON字符串到对象
    3. User user = json.Deserialize<User>(jsonString);
    4. // 序列化对象为JSON字符串
    5. string jsonString = json.Serialize(user);

    JavaScriptSerializer 成员信息:http://msdn.microsoft.com/zh-cn/library /system.web.script.serialization.javascriptserializer_members.aspx

    AJAX 中使用JSON

    示例代码:

    1. function getResult()
    2.           {
    3.                  $.ajax({
    4.            type: "POST",
    5.            url: "?Json=true",
    6.            data:"UserInfo="+obj.toJSONString(),
    7.            success: function(msg){
    8.                                 var obj = msg.parseJSON();
    9.                                  alert( "Name: " + obj.Name +",User:"+obj.User );
    10.                                   }
    11.          });

    完整示例代码

    Default.aspx

    1. <%@ Page Language="C#"AutoEventWireup="true"CodeBehind="Default.aspx.cs"Inherits="JsonWeb._Default" %>
    2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    3. <htmlxmlns="http://www.w3.org/1999/xhtml">
    4. <headrunat="server">
    5.     <title>Untitled Page</title>
    6.     <scriptsrc="http://www.json.org/json.js"type="text/javascript"></script>
    7.     <scriptsrc="http://code.jquery.com/jquery.js"type="text/javascript"></script>
    8. <scripttype="text/javascript">
    9.          // "名称/值"对的集合
    10.          var User={"userID":"1","Name":"Froog","friends":["Jack","Zack","Justin"]}
    11.                  alert(User.Name);alert(User.friends[0]);
    12.        
    13.          // 值的有序列表
    14.          var Users=[{"userID":"1","Name":"Froog","friends":["Jack","Zack","Justin"]},
    15.          {"userID":"2","Name":"Zack","friends":["Jack","Zack","Justin"]},
    16.          {"userID":"3","Name":"Justin","friends":["Jack","Zack","Justin"]}
    17.                      ]
    18.          alert(Users[2].Name);alert(Users[2].friends.length);
    19.          alert(escape());
    20.        
    21.          // 转换JSON字符到Object
    22.          var JsonString = '{"userID":"2","Name":"Froog","friends":["Jack","Zack","Justin"]}';  
    23.          var User2 = eval('(' + JsonString + ')');
    24.          alert(User2.Name);alert(User2.friends[0]);
    25.        
    26.          //引用 json.js 实现JSON字符与Object相互转换。
    27.          var obj = JsonString.parseJSON();  
    28.          alert(obj.toJSONString()); 
    29.        
    30.           //AJAX 中使用JSON  
    31.           function getResult()
    32.           {
    33.                  $.ajax({
    34.            type: "POST",
    35.            url: "?Json=true",
    36.            data:"UserInfo="+obj.toJSONString(),
    37.            success: function(msg){
    38.                                  var obj = msg.parseJSON();
    39.                                  alert( "Name: " + obj.Name +",User:"+obj.User );
    40.                                   }
    41.          });
    42.      //   requestHeaders: {Accept: 'application/json'} /**/,
    43.                       }
    44. </script>
    45. </head>
    46. <body>
    47.     <formid="form1"runat="server">
    48.     <div>
    49.     <inputtype="button"value="AJAX"onclick="getResult()"/>
    50.     </div>
    51.     </form>
    52. </body>
    53. </html>

    Default.aspx.cs

    1. using System;
    2. using System.Collections;
    3. using System.Configuration;
    4. using System.Data;
    5. using System.Linq;
    6. using System.Web;
    7. using System.Web.Security;
    8. using System.Web.UI;
    9. using System.Web.UI.HtmlControls;
    10. using System.Web.UI.WebControls;
    11. using System.Web.UI.WebControls.WebParts;
    12. using System.Xml.Linq;
    13. using System.Web.Script.Serialization;
    14. namespace JsonWeb
    15. {
    16.     public partial class _Default : System.Web.UI.Page
    17.      {
    18.         protectedvoid Page_Load(object sender, EventArgs e)
    19.          {
    20.             if (Request.QueryString["Json"] != null)
    21.              {
    22.                 // AJAX 异步调用处理程序
    23.                 string UserInfo = Request.Form["UserInfo"] ?? string.Empty;
    24.                  JavaScriptSerializer json = new JavaScriptSerializer();
    25.                  Product product = new Product() { Name = "Computer " };
    26.                 if (!string.IsNullOrEmpty(UserInfo))
    27.                  {
    28.                     // 反序列化
    29.                      User user = json.Deserialize<User>(UserInfo);
    30.                      product.User = user.Name;
    31.                  }
    32.                 else
    33.                  {
    34.                      product.User = "Unknow";
    35.                  }
    36.                 // 序列化
    37.                 string jsonString = json.Serialize(product);
    38.                 // 输出异步处理结果
    39.                  Response.ContentType = "application/json";
    40.                  Response.Write(jsonString);
    41.                  Response.End();
    42.              }
    43.          }
    44.      }
    45.      [Serializable]
    46.     publicclass Product
    47.      {
    48.         publicstring Name;
    49.         publicstring User;
    50.      }
    51.     publicclass User
    52.      {
    53.         publicstring Name { get; set; }
    54.      }
    55. }
  • 相关阅读:
    CHtmlEditCtrl (3): More HTML Editor Options
    CHtmlEditCtrl (2): Add a Source Text Editor to Your HTML Editor
    CHtmlEditCtrl(1) : Use CHtmlEditCtrl to Create a Simple HTML Editor
    HttpWebRequest抓取网页数据返回异常:远程服务器返回错误: (503) 服务器不可用
    HttpWebRequest: Remote server returns error 503 Server Unavailable
    所有的图片后缀名
    system函数的应用一例
    esUtil.h中的m变量报错
    IIS通过HTML5实现应用程序缓存的离线浏览
    鼠标悬浮在img上让图片变大
  • 原文地址:https://www.cnblogs.com/love201314/p/3327847.html
Copyright © 2011-2022 走看看