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添加以下引用~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对象 示例代码:
- JavaScriptSerializer json = new JavaScriptSerializer();
- // 反序列化JSON字符串到对象
- User user = json.Deserialize<User>(jsonString);
- // 序列化对象为JSON字符串
- string jsonString = json.Serialize(user);
JavaScriptSerializer 成员信息:http://msdn.microsoft.com/zh-cn/library /system.web.script.serialization.javascriptserializer_members.aspx
AJAX 中使用JSON
示例代码:
- function getResult()
- {
- $.ajax({
- type: "POST",
- url: "?Json=true",
- data:"UserInfo="+obj.toJSONString(),
- success: function(msg){
- var obj = msg.parseJSON();
- alert( "Name: " + obj.Name +",User:"+obj.User );
- }
- });
完整示例代码
Default.aspx
- <%@ Page Language="C#"AutoEventWireup="true"CodeBehind="Default.aspx.cs"Inherits="JsonWeb._Default" %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <htmlxmlns="http://www.w3.org/1999/xhtml">
- <headrunat="server">
- <title>Untitled Page</title>
- <scriptsrc="http://www.json.org/json.js"type="text/javascript"></script>
- <scriptsrc="http://code.jquery.com/jquery.js"type="text/javascript"></script>
- <scripttype="text/javascript">
- // "名称/值"对的集合
- var User={"userID":"1","Name":"Froog","friends":["Jack","Zack","Justin"]}
- alert(User.Name);alert(User.friends[0]);
- // 值的有序列表
- 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"]}
- ]
- alert(Users[2].Name);alert(Users[2].friends.length);
- alert(escape());
- // 转换JSON字符到Object
- var JsonString = '{"userID":"2","Name":"Froog","friends":["Jack","Zack","Justin"]}';
- var User2 = eval('(' + JsonString + ')');
- alert(User2.Name);alert(User2.friends[0]);
- //引用 json.js 实现JSON字符与Object相互转换。
- var obj = JsonString.parseJSON();
- alert(obj.toJSONString());
- //AJAX 中使用JSON
- function getResult()
- {
- $.ajax({
- type: "POST",
- url: "?Json=true",
- data:"UserInfo="+obj.toJSONString(),
- success: function(msg){
- var obj = msg.parseJSON();
- alert( "Name: " + obj.Name +",User:"+obj.User );
- }
- });
- // requestHeaders: {Accept: 'application/json'} /**/,
- }
- </script>
- </head>
- <body>
- <formid="form1"runat="server">
- <div>
- <inputtype="button"value="AJAX"onclick="getResult()"/>
- </div>
- </form>
- </body>
- </html>
Default.aspx.cs
- using System;
- using System.Collections;
- using System.Configuration;
- using System.Data;
- using System.Linq;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.HtmlControls;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Xml.Linq;
- using System.Web.Script.Serialization;
- namespace JsonWeb
- {
- public partial class _Default : System.Web.UI.Page
- {
- protectedvoid Page_Load(object sender, EventArgs e)
- {
- if (Request.QueryString["Json"] != null)
- {
- // AJAX 异步调用处理程序
- string UserInfo = Request.Form["UserInfo"] ?? string.Empty;
- JavaScriptSerializer json = new JavaScriptSerializer();
- Product product = new Product() { Name = "Computer " };
- if (!string.IsNullOrEmpty(UserInfo))
- {
- // 反序列化
- User user = json.Deserialize<User>(UserInfo);
- product.User = user.Name;
- }
- else
- {
- product.User = "Unknow";
- }
- // 序列化
- string jsonString = json.Serialize(product);
- // 输出异步处理结果
- Response.ContentType = "application/json";
- Response.Write(jsonString);
- Response.End();
- }
- }
- }
- [Serializable]
- publicclass Product
- {
- publicstring Name;
- publicstring User;
- }
- publicclass User
- {
- publicstring Name { get; set; }
- }
- }
using System.Web.Script.Serialization的更多相关文章
- System.Web.Script.Serialization引用找不到的问题
之前在项目中要使用JavascriptSerializer这个类,需要引入System.Web.Script.Serialization命名空间,但是在添加引用中找不到这个命名空间,后来才得知Syst ...
- ASP.NET 使用 System.Web.Script.Serialization 解析 JSON (转)
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Langu ...
- csharp: using using System.Web.Script.Serialization read json
using System; using System.Data; using System.Configuration; using System.Collections; using System. ...
- 在.net2.0下使用System.Web.Script.Serialization;
最近,在弄json字符串转为对象.需要添加这个引用System.Web.Script.Serialization;因为版本必须是dotnet2.0的原因,发现很多解决方案不适合自己.故使用这种解决办法 ...
- C# 使用 System.Web.Script.Serialization 解析 JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Langu ...
- 参考C# 使用 System.Web.Script.Serialization 解析 JSON
参考C# 使用 System.Web.Script.Serialization 解析 JSON 使用json需要引用到System.Web.Script.Serialization.习惯在解决方案右键 ...
- System.Web.Script.Serialization的引用
解决方案: 找到C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0 ==>System.Web.Extensions.d ...
- 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. ...
- "System.Web" 中不存在类型或命名空间
System.Web”中不存在类型或命名空间名称script /找不到System.Web.Extensions.dll引用 添加引用就行了...“添加引用→.Net→System.Web.Ente ...
随机推荐
- Zend Server 安装与配置图文教程
Zend Server是一款专业的PHP Web开发应用服务器,一些初次接触并使用此程序的朋友可能不太了解安装方法,本文为您提供了Zend Server 安装与配置图文教程,欢迎大家阅读,并提出自己的 ...
- SpringMVC RESTful中文乱码
开发中常遇到各种中文乱码很少心烦,这里总结了各种中文乱码https://www.cnblogs.com/lwx521/p/9856186.html 下面以SpringMVC遇到的中文乱码为例详解 首先 ...
- hadoop作业调优参数整理及原理
hadoop作业调优参数整理及原理 10/22. 2013 1 Map side tuning参数 1.1 MapTask运行内部原理 当map task开始运算,并产生中间数据时,其产生的中间结果并 ...
- 6.7 通过终端连接jboss,连接数据库
进入终端,通过 ssh jboss@ip地址即可. 然后通过sqlplus 数据库名,输入密码,即可连接数据库. 具体不懂的可以查看对应文档进行操作.
- JavaScript: 高级技巧: window 对象也可以添加自定义属性
JavaScript: 高级技巧: window 对象也可以添加自定义属性 例如 window.ntName = 'a';例如 window.ntXw = top; 优点是, window 无须等加载 ...
- 2.HTTP头注入
重新认识被人遗忘的HTTP头注入 前言 注入类漏洞经久不衰,多年保持在owasp Top 10的首位.今天就聊聊那些被人遗忘的http头注入.用简单的实际代码进行演示,让每个人更深刻的去认识该漏洞. ...
- Multi-task Pose-Invariant Face Recognition 论文笔记
摘要: 在不受限制的环境中拍摄的人脸图像通常包含显著的姿态变化,这会显著降低设计用于识别正面的算法的性能.本文提出了一种新颖的面部识别框架,能够处理±90°偏航范围内的全方位姿势变化.所提出的框架首先 ...
- 移动端与H5页面像素的差异与关系
最近工作任务主要是移动端内嵌H5页面,一次与原生进行像素交互下,发现了这个天坑,再次做个记录
- 程序员笔记|详解Eureka 缓存机制
引言 Eureka是Netflix开源的.用于实现服务注册和发现的服务.Spring Cloud Eureka基于Eureka进行二次封装,增加了更人性化的UI,使用更为方便.但是由于Eureka本身 ...
- Boost Python官方样例(一)
配置环境 $ cat /etc/os-release NAME="Ubuntu" VERSION="16.04 LTS (Xenial Xerus)" ID=u ...