正文

ASP的JSON类
文章分类:ASP技术   文章来源:本站整理   发布时间:2008-9-10 8:29:18   浏览次数:261

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>

Tags: ASP   JSON  


[打印本文]  [查看评论]  [发表评论]  [返回首页]  [关闭窗口]