本文目錄一覽:
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 帳號可修改權限。
原創文章,作者:SPOA,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/139220.html