本文目录一览:
asp 如何请求 json
传统的ASP与ASP之间post提交json可以用:
json=cstr(request.form)
来获取得到的json代码
2
实际上,如果是java或php提交过来的话,用request.form可能得到的就是空值,最稳妥的办法是根据二进制流得到数据,具体操作如下:
3
2个页面,第一个页面假设为:funtion.asp
代码如下:
%
function bytes2bstr(vin)
dim bytesstream,stringreturn
set bytesstream = server.CreateObject("adodb.stream")
bytesstream.type = 2
bytesstream.open
bytesstream.writeText vin
bytesstream.position = 0
bytesstream.charset = "utf-8"'或者gb2312
bytesstream.position = 2
stringreturn = bytesstream.readtext
bytesstream.close
set bytesstream = nothing
bytes2bstr = stringreturn
end function
%
4
第二个页面,假设为demo.asp,代码如下:
!--#include file="funtion.asp"--
%
getpostjson=Request.TotalBytes '得到字节数
if getpostjson=0 then
response.Write("json null")
response.End()
end if
readjson=Request.BinaryRead(getpostjson) '二进制方式来读取客户端使用POST传送方法所传递的数据
json = bytes2bstr(readjson) '二进制转化
response.write(json)
%
5
字符串解析:
Set jsonobj=getJSONObject(json)
ASP输出JSON格式
ASP输出JSON格式是靠ASP.NET自带的JavaScriptSerializer来生成JSON数据的。
举例如下:
ArrayList eventList = new ArrayList();
for (int i = 0; i 3;i++ )
{
Hashtable ht = new Hashtable();
ht.Add("eventid",i+1);
ht.Add("eventname","圣诞节");
ht.Add("eventdate","2012-12-25");
ht.Add("eventlocation","公司会议中心");
eventList.Add(ht);
}
JavaScriptSerializer ser = new JavaScriptSerializer();
String jsonStr=ser.Serialize(eventList);
Response.Write(jsonStr);
查看页面,可以看到返回的结果是JSON格式的数据如下:
asp如何获取ajax()提交的json数据
bytecount = Request.TotalBytes
bytes = Request.BinaryRead(bytecount)
Set stream = Server.CreateObject("ADODB.Stream")
stream.Type = 1 'adTypeBinary
stream.Open()
stream.Write(bytes)
stream.Position = 0
stream.Type = 2 'adTypeText
stream.Charset = "utf-8"
s = stream.ReadText() 'here is your json as a string
stream.Close()
Set stream = nothing
Response.write(s)
得到的s就是json格式的字符串,就象{"userid":"apple","password":"test123456"}
然后再利用其它工具可以将json字符串中的相关信息提取出来。这个网上有很多示例。
ASP 读取json后如何 写入数据库
ASP 获取JSON 数据:script language="JScript" runat="Server"
function toObject(json) {
eval("var o=" + json);
return o;
}
/script
%
Dim json
json ="{""px_name"":""第二届"",""px_ksjs"":""2014-03-11"",""px_kcfl"":""培训课程""}"
Set json = toObject(json)
Response.Write json.px_name " br/"
Response.Write json.px_ksjs " br/"
Response.Write json.px_kcfl " br/"
Set json = Nothing
%
2.写入数据库
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|db1.mdb";
OleDbCommand comm = new OleDbCommand();
conn.Open();
comm.Connection = conn;
comm.CommandText = "Insert Into [Time] ([begin],[over],[name]) Values (@begin,@over,@name)";
comm.Parameters.AddWithValue("@begin", a);
comm.Parameters.AddWithValue("@over", b);
comm.Parameters.AddWithValue("@name", c);
comm.ExecuteNonQuery();
conn.Close();
注意:
1、以上代码是以access数据为例。
2、如果表里面有其他不能为空的字段存在,需要给他们提供值,自动增加的字段除外。
3、db1.mdb文件的只读属性去掉,在文件的属性-安全性里面,添加 everyone帐号和NETWORK Service 帐号可修改权限。