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 ...
随机推荐
- java处理中日文字符串的乱码问题
——杂言:前段时间在处理音频预览问题,详见关于audiojs的研究.期间,将远端的音频下载并缓存在本地过程中,涉及到java.io.*的几个操作,发生一些乱码问题. 我以前的处理是将本地的编码转换为U ...
- <table>的使用以及确定取消按钮的设置
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Linux部署walle
背景:Walle 一个web部署系统工具,配置简单.功能完善.界面流畅.开箱即用!支持git.svn版本管理,支持各种web代码发布,PHP,Python,JAVA等代码的发布.回滚,可以通过web来 ...
- 第四篇 express 安装esasticsearch
1.首先,我们创建一个Express应用程序!我将使用express.js生成器. npm install -g express-generator express ./autocompleter c ...
- Installshield build all installer in development computer
Step: Copy all "SetupPrerequisites" from build server. please make sure below items: Insta ...
- p1640&bzoj1854 连续攻击游戏(游戏)
传送门(洛谷) 传送门(bzoj) 题目 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用 ...
- Robots.txt在项目中的运用
在开发公司一个项目的过程中,有这样一个需求 该网站上面有一个search功能,可以search该网站上的任何包括特定内容的网页 现在有一个需求,就是针对几个特定的页面,我们希望网站上的search功能 ...
- 1. csrf 简介
浅谈CSRF CSRF是什么? (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 年曾被列为互联网 大安全隐患之一,也被称为“One Click A ...
- [转载]Java程序员掌握的10大项知识体系--精通太难说出口
1.语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正. 2.命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:a ...
- elasticsearch 聚合查询
1. 按照 tags 字段 进行分组 GET /ecommerce/product/_search{ "size": 0, "aggs": { &quo ...