JSON传递数据

在Ajax中,JSON是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成,它是JavaScript对象与服务器对象交互的一种技术手段,JavaScript中使用function构建函数类,在.net服务器方使用JSON类库解析此JavaScript函数类达到JavaScript与服务器传递数据的目的。

应用举例:

请求页send_json_request.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="send_json_request.aspx.cs" Inherits="Ajax_send_json_request" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<script language="javascript" src="json.js"></script>
<script language="javascript">
var xmlHttp;

function createXMLHttp()
{
if (window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}

function user(name,pwd)
{
this.Name = name;
this.Pwd = pwd;
}

function getUser()
{
return new user(document.getElementById('txtName').value,document.getElementById('txtPwd').value);
}

function getUserInfo()
{
var user1 = getUser();
var json_user1 = JSON.stringify(user1);
createXMLHttp();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("POST","send_json_response.aspx?timeStamp="+new Date().getTime(),true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send(json_user1);
return false;
}

function handleStateChange()
{
if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
alert(xmlHttp.responseText);
}
}

</script>
</head>
<body>
<form id="Form1" runat="server">
<div>
用户名:
<input type="text" name="txtName" id="txtName">
密码:
<input type="text" name="txtPwd" id="txtPwd">
<input type="button" name="Submit" value="查看用户信息" onClick="return getUserInfo();">
</div>
</form>
</body>
</html>


响应页send_json_response.aspx:
using System;
using System.Collections.Generic;
using System.Text;
using Newtonsoft.Json;
using System.IO;
using NUnit.Framework;

public partial class Ajax_send_json_response : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string str = string.Empty;
byte[] bytes = Request.BinaryRead(Request.TotalBytes);
str = System.Text.Encoding.UTF8.GetString(bytes);

User u = (User)JavaScriptConvert.DeserializeObject(str, typeof(User));
if (u.Name.ToLower().Equals("admin") && u.Pwd.ToLower().Equals("admin"))
{
Response.Write("管理员");
}
else if (u.Name.ToLower().Equals("user") && u.Pwd.ToLower().Equals("user"))
{
Response.Write("普通用户");
}
else
{
Response.Write("输入错误");
}
}

new class User
{
private string name;
private string pwd;

public string Name
{
set { this.name = value; }
get { return this.name; }
}

public string Pwd
{
set { this.pwd = value; }
get { return this.pwd; }
}
}
}

注:上例需要json.js,Newtonsoft.Json.dll,nunit.framework.dll.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值