javascript, json, xml
2010-01-16 16:02
204 查看
【转自】http://www.cnblogs.com/chenxizhang/archive/2010/01/13/1646255.html
在网络编程中,我们经常需要用到javascript,这些客户端脚本又经常需要与服务端进行异步的通讯,提交并接收数据。下面这个例子演示了如何设计服务,如何编写脚本
1. 服务端,这是一个ashx文件
需要添加两个引用 System.Runtime.Serialization和System.ServiceModel.Web
在网络编程中,我们经常需要用到javascript,这些客户端脚本又经常需要与服务端进行异步的通讯,提交并接收数据。下面这个例子演示了如何设计服务,如何编写脚本
1. 服务端,这是一个ashx文件
需要添加两个引用 System.Runtime.Serialization和System.ServiceModel.Web
using System.Web; using System.Web.Services; using System.Runtime.Serialization.Json; using System.Runtime.Serialization; using System.IO; using System.Text; namespace DynamicTableSample { /// <summary> /// $codebehindclassname$ 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class Test : IHttpHandler { public void ProcessRequest(HttpContext context) { //解析客户端传过来的数据 var c = context.Request["data"]; var ser = new DataContractJsonSerializer(typeof(Customer)); Customer customer =ser.ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(c))) as Customer;//反序列化,将字符串转换为对象 //返回结果 ActionResult result = new ActionResult() { ResultCode = 200, Message = "该操作已经成功" }; var ser2 = new DataContractSerializer(typeof(ActionResult)); //直接返回xml格式的内容。返回xml其实是更好的,因为这个服务才更有通用性。 ser2.WriteObject(context.Response.OutputStream, result); } public bool IsReusable { get { return false; } } } public class Customer { public string CustomerID { get; set; } public Employee[] Employees { get; set; } public class Employee { public int Id { get; set; } public string Name { get; set; } } } public class ActionResult { public int ResultCode { get; set; } public string Message { get; set; } } }
2. 客户端
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestJson.aspx.cs" Inherits="DynamicTableSample.TestJson" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script src="jquery-1.3.2-vsdoc.js" type="text/javascript"></script> <script src="json2.js" type="text/javascript"></script> <script type="text/javascript"> function Test() { var arr = new Array(); var o = new Object(); o.Id = 1; o.Name = "chenxizhang"; arr.push(o); arr.push(o); arr.push(o); var customer = new Object(); customer.CustomerID = "Microsoft"; customer.Employees = arr; $("#msg").html(JSON.stringify(customer)); $.post("Test.ashx", "data=" + JSON.stringify(customer), function(result) { alert($(result).find("Message").text());//这里可以解析xml }); $.ajax({ type: "post", data: "data=" + JSON.stringify(customer), url: "Test.ashx", success: function(result) { alert(result);//这是返回xml } }); //var o = JSON.parse('{"Name":"chenxizhang"}'); //alert(o.Name); } </script> </head> <body> <form id="form1" runat="server"> <div id="msg"> </div> </form> <input type="button" value="测试" onclick="Test()" /> </body> </html>
相关文章推荐
- [转载]EXT核心API详解Ext.data(十)-DataReader/ArrayReader/JsonReader/XmlReader javascript
- 多叉树结合JavaScript树形控件实现无限级树形菜单(一种构建多级有序树形结构JSON(或XML)数据源的方法)
- 关于原生JavaScript的http全部请求 post get json xml file 全了 拿去救急
- javascript 解析ajax返回的xml和json格式的数据
- javascript 解析ajax返回的xml和json格式的数据
- 多叉树结合JavaScript树形控件实现无限级树形菜单(一种构建多级有序树形结构JSON(或XML)数据源的方法)
- JavaScript入门与其框架JQuery,JSON和XML的比较
- JavaScript加载XML文件,并解析为JSON对象
- javascript, json, xml
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
- XML和JSON(JavaScript Object Notation)
- Java和JavaScript对XML与JSON的支持
- JavaScript将XML转成JSON的方法
- JavaScript - XMLHttpRequest 应用示例(传输二进制数据、JSON 字符串,监测进度)
- JavaScript入门篇之新生代JSON遇XML
- json javascript css php xml简介 客户端服务器
- EXT核心API详解Ext.data(十)-DataReader/ArrayReader/JsonReader/XmlReader javascript
- javascript post数据到WCF反馈json或者XML
- 【JavaScript.6】阶段概念总结之HTML+CSS+JavaScript+xml+xpath+Json+Ajax
- Javascript JSON转XML (change JSON to xml)