JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯。这些特性使JSON成为理想的数据交换语言。
项目中添加引用,找到这个名称的dll,加入.net 3.5添加以下引用~Framework\v3.5\System.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. var Users=[{"userID":"1","Name":"Froog","friends":["Jack","Zack","Justin"]},
  14. {"userID":"2","Name":"Zack","friends":["Jack","Zack","Justin"]},
  15. {"userID":"3","Name":"Justin","friends":["Jack","Zack","Justin"]}
  16. ]
  17. alert(Users[2].Name);alert(Users[2].friends.length);
  18. alert(escape());
  19. // 转换JSON字符到Object
  20. var JsonString = '{"userID":"2","Name":"Froog","friends":["Jack","Zack","Justin"]}';
  21. var User2 = eval('(' + JsonString + ')');
  22. alert(User2.Name);alert(User2.friends[0]);
  23. //引用 json.js 实现JSON字符与Object相互转换。
  24. var obj = JsonString.parseJSON();
  25. alert(obj.toJSONString());
  26. //AJAX 中使用JSON
  27. function getResult()
  28. {
  29. $.ajax({
  30. type: "POST",
  31. url: "?Json=true",
  32. data:"UserInfo="+obj.toJSONString(),
  33. success: function(msg){
  34. var obj = msg.parseJSON();
  35. alert( "Name: " + obj.Name +",User:"+obj.User );
  36. }
  37. });
  38. //   requestHeaders: {Accept: 'application/json'} /**/,
  39. }
  40. </script>
  41. </head>
  42. <body>
  43. <formid="form1"runat="server">
  44. <div>
  45. <inputtype="button"value="AJAX"onclick="getResult()"/>
  46. </div>
  47. </form>
  48. </body>
  49. </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. }

using System.Web.Script.Serialization的更多相关文章

  1. System.Web.Script.Serialization引用找不到的问题

    之前在项目中要使用JavascriptSerializer这个类,需要引入System.Web.Script.Serialization命名空间,但是在添加引用中找不到这个命名空间,后来才得知Syst ...

  2. ASP.NET 使用 System.Web.Script.Serialization 解析 JSON (转)

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Langu ...

  3. csharp: using using System.Web.Script.Serialization read json

    using System; using System.Data; using System.Configuration; using System.Collections; using System. ...

  4. 在.net2.0下使用System.Web.Script.Serialization;

    最近,在弄json字符串转为对象.需要添加这个引用System.Web.Script.Serialization;因为版本必须是dotnet2.0的原因,发现很多解决方案不适合自己.故使用这种解决办法 ...

  5. C# 使用 System.Web.Script.Serialization 解析 JSON

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Langu ...

  6. 参考C# 使用 System.Web.Script.Serialization 解析 JSON

    参考C# 使用 System.Web.Script.Serialization 解析 JSON 使用json需要引用到System.Web.Script.Serialization.习惯在解决方案右键 ...

  7. System.Web.Script.Serialization的引用

    解决方案: 找到C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0 ==>System.Web.Extensions.d ...

  8. The type or namespace name 'Script' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)

    应该说是 .net4 的bug,没有所谓的 System.Web.Extensions.dll 库文件,需要将项目的 Target Framework修改为 3.5版本,才能加载System.Web. ...

  9. "System.Web" 中不存在类型或命名空间

    System.Web”中不存在类型或命名空间名称script  /找不到System.Web.Extensions.dll引用 添加引用就行了...“添加引用→.Net→System.Web.Ente ...

随机推荐

  1. Swift3.0 基础学习梳理笔记(一)

    本篇是我在学完一遍基础语法知识的时候,第一遍复习,我一遍梳理一遍记录的笔记.同时分享给像我一样在学习swift 的猿友们. 本篇可能过于冗长.所以所有的参考资料都分模块的写在palyground 里, ...

  2. 2017清北学堂(提高组精英班)集训笔记——动态规划Part3

    现在是晚上十二点半,好累(无奈脸),接着给各位——也是给自己,更新笔记吧~ 序列型状态划分: 经典例题:乘积最大(Luogu 1018) * 设有一个长度为 N 的数字串,要求选手使用 K 个乘号将它 ...

  3. Zabbix_proxy的架设

    一.安装zabbix-proxy与导入数据库 1. 安装 zabbix-server $ sudo rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/ ...

  4. Java视频播放器的制作

    ----------------siwuxie095                             使用 Java Swing 框架制作一个简单的视频播放器:         首先到 Vid ...

  5. Entity Framework Code-First(9.10):DataAnnotations - NotMapped Attribute

    DataAnnotations - NotMapped Attribute: NotMapped attribute can be applied to properties of a class. ...

  6. String与字符数组

    public class Example { static String str = new String("good"); static char[] ch = {'a','b' ...

  7. 1.jQuery入口函数 与javaScript入口函数

    1.jQuery入口函数 与javaScript入口函数 JQ入口函数: $(document).ready(function(){ }); 或者 $(function(){ }) Js入口函数: w ...

  8. .net core关于跨域及Cookie的部分问题

    一.如何跨域 1.情景描述 目前有A站点和B站点.A站点有一个API接口为UserData接口,B站点希望可以通过ajax请求来获取A站点该接口数据. 2.后端修改 首先在ConfigureServi ...

  9. cropper.js裁剪图片的使用

    这两天难得有时间可以整理一下最近学习的东西,这两天项目中用到了头像上传裁剪的功能,这里只介绍头像的裁剪吧. 单独实现图片剪裁的功能还是挺容易的,入门级别的.看一遍官方给的文档,基本上就明白了.大家如果 ...

  10. ora2pg oracle迁移postgresql工具

    windows下安装 1. 安装strawberry-perl-5.24.3.1-64bit.msi 2. ora2pg-18.2.zip 解压缩cd 进入目录perl Makefile.PLdmak ...