ASP的JSON类

ASP   2024-12-21 15:28   71   0  

1、问题的提出

做一个无刷新联动的<Select>


2、定义VBScript的一个类

'--------------------------------------- 
' JSONClass类 
' 将Select语句的执行结果转换成JSON 
'------------------------------------------ 
Class JSONClass 
' 定义类属性,默认为Private 
Dim SqlString ' 用于设置Select 
Dim JSON ' 返回的JSON对象的名称 
Dim DBConnection ' 连接到数据库的Connection对象 

' 可以外部调用的公共方法 
Public Function GetJSON () 
dim Rs 
dim returnStr 
dim i 
dim oneRecord 

' 获取数据 
Set Rs= Server.CreateObject("ADODB.Recordset") 
Rs.open SqlString,DBConnection,1,1 
' 生成JSON字符串 
if Rs.eof=false and Rs.Bof=false then 
returnStr="{ "& JSON & ":{ records:[" 
while Rs.eof=false 
' ------- 
oneRecord= "{" 
for i=0 to Rs.Fields.Count -1 
oneRecord=oneRecord & chr(34) &Rs.Fields(i).Name&chr(34)&":" 
oneRecord=oneRecord & chr(34) &Rs.Fields(i).Value&chr(34) &"," 
Next 
'去除记录最后一个字段后的"," 
oneRecord=left(oneRecord,InStrRev(oneRecord,",")-1) 
oneRecord=oneRecord & "}," 
'------------ 
returnStr=returnStr & oneRecord 
Rs.MoveNext 
Wend 
' 去除所有记录数组后的"," 
returnStr=left(returnStr,InStrRev(returnStr,",")-1) 
returnStr=returnStr & "]}}" 
end if 
Rs.close 
set Rs=Nothing 
GetJSON=returnStr 
End Function 

'私用方法,在类中使用 
Private Function check() 

End Function 
' 
End Class


3、调用该类

<% 

dim a 

set a=new JSONClass 

a.Sqlstring="Select * From magazine" 

a.dbconnection=conn 

a.json="magazineTab" 

'response.Write(a.GetJSon()) 

%>


4、将JSON传递给JavaScript,转变成JavaScript对象。

<script language="JavaScript" type="text/JavaScript"> 

var i; 

var obj=<%=a.GetJSon()%>; 

// var obj=eval( "("+<%=a.GetJson()%>+")" ); 

var oSelect=document.getElementById("magazine"); 

for(i=0;i<obj.magazineTab.records.length;i++){ 

var oOption = document.createElement("OPTION"); 

oSelect.options.add(oOption); 

oOption.innerText =obj.magazineTab.records[i].magazine ; 

oOption.value = obj.magazineTab.records[i].magazineID; 

}; 

</script> 

博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。