asp将数据库里的记录转换成json

<script type="text/javascript">google_ad_client = "pub-2048279401139630";google_ad_slot = "8856771542";google_ad_width = 728;google_ad_height = 90;document.write("<s"+"cript type='text/javascript' s"+"rc='http://pagead2.googlesyndication.com/pagead/show_ads"+"."+"js'></scr"+"ipt>");</script>
< %
' --------------------------------------- 
'
 JSONClass类 
'
 将Select语句的执行结果转换成JSON 
'
------------------------------------------ 
Class JSONClass 
    
'  定义类属性,默认为Private 
     Private  p_SqlString  '  用于设置Select 
     Private p_root  '  返回的JSON对象的名称 
     Private Rs,conn
    
    
Private   Sub  Class_Initialize()
        SqlString 
=   ""
        JSON 
=   ""
        
' 初始化conn和rs
         Call  initConn(conn)
        
Call  initRs(rs) 
    
End Sub
    
    
Private   Sub  Class_Terminate()
        
' 清除conn和rs
         Call  clearConn(conn)
        
Call  clearRs(rs)
    
End Sub
    
    
'  可以外部调用的公共方法 
     Public   Function  GetJSON()
        
Dim  Rs 
        
Dim  returnStr 
        
Dim  i 
        
Dim  oneRecord 
        
        
'  获取数据 
         Set  Rs =  Server.CreateObject( " ADODB.Recordset "
        Rs.open Sql,conn,
1 , 1  
        
'  生成JSON字符串 
         If  Rs.eof = false   And  Rs.Bof = false   Then  
            returnStr
= " " & Chr ( 13 ) &   Chr ( 9 &   Chr ( 9 &  Root  &   " :{  " &   Chr ( 13 &   Chr ( 9 &   Chr ( 9 & Chr ( 9 &   Chr ( 9 & " records:[  "   &   Chr ( 13 )
            
            
While ( Not  Rs.Eof)
                
'  ------- 
                oneRecord =   Chr ( 9 &   Chr ( 9 &   Chr ( 9 &   Chr ( 9 &   Chr ( 9 &   " "  
                
                
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  &   " }, "   &   Chr ( 13 )
            
' ------------ 
            returnStr = returnStr  &  oneRecord 
            Rs.MoveNext 
            
Wend  
            
'  去除所有记录数组后的"," 
            returnStr = Left (returnStr, InStrRev (returnStr, " , " ) - 1 &   Chr ( 13 )
            returnStr
= returnStr  &   Chr ( 9 &   Chr ( 9 & Chr ( 9 &   Chr ( 9 & " ] "   &   Chr ( 13 &   Chr ( 9 &   Chr ( 9 &   " } "   & Chr ( 13 &   " } "  
        
End   If

        GetJSON
= returnStr 
    
End Function  
    
    
' 私用方法,在类中使用 
     Private   Function  check() 
    
    
End Function  
    
    
' 数据库操作
     Sub  initConn(conn)
        
Set  conn = Server.CreateObject( " ADODB.Connection " )
        conn.Mode
= 3
        conn.Open connStr
    
End Sub
    
    
Sub  clearConn(conn)
        conn.Close
        
Set  conn = Nothing
    
End Sub
    
    
Sub  initRs(rs)
        
Set  Rs = Server.CreateObject( " ADODB.RecordSet " )
    
End Sub
    
Sub  clearRs(Rs)
        
Set  Rs = Nothing
    
End Sub
    
    
Public   Property   Get  Sql
        Sql 
=  p_SqlString
    
End Property
    
    
Public   Property   Let  Sql(value)
        p_SqlString 
=  value
    
End Property
    
    
Public   Property   Get  Root
        Root 
=  p_root
    
End Property
    
    
Public   Property   Let  Root(value)
        p_root 
=  value
    
End Property
'  
End  Class 
%
>
< %
Set  json  =   new  JSONClass
json.Sql 
=   " SELECT * FROM Research_Dictionary "
json.Root 
=   " Research_Dictionary "

Response.Charset
= " utf-8 "

' Call OutPut(json.GetJSON())
% >
<script type="text/javascript">google_ad_client = "pub-2048279401139630";google_ad_slot = "8856771542";google_ad_width = 728;google_ad_height = 90;document.write("<s"+"cript type='text/javascript' s"+"rc='http://pagead2.googlesyndication.com/pagead/show_ads"+"."+"js'></scr"+"ipt>");</script>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值