• 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. }
  • 相关阅读:
    e621. Activating a Keystroke When Any Child Component Has Focus
    e587. Filling Basic Shapes
    e591. Drawing Simple Text
    e595. Drawing an Image
    e586. Drawing Simple Shapes
    e636. Listening to All Key Events Before Delivery to Focused Component
    在 PL/SQL 块的哪部分可以对初始变量赋予新值? (选择1项)
    Oracle数据库中,在SQL语句中连接字符串的方法是哪个?(选择1项)
    你判断下面语句,有什么作用?(单选)
    Oracle数据库表空间与数据文件的关系描述正确的是( )
  • 原文地址:https://www.cnblogs.com/love201314/p/3327847.html
Copyright © 2020-2023  润新知