asp读取数据库关联的2个表之间的数据并以JSON格式输出

ASP   2025-02-27 17:56   60   0  
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Response.ContentType = "text/html; charset=utf-8"%>
<%
'纳米AI,输出JSON格式
' 创建数据库连接 
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=db;User ID=sa;Password=123456;"
 
' 初始化主数组 
Dim resultArr 
resultArr = Array()
 
' 查询父类 
Set rsParent = conn.Execute("select id,MingCheng from BDClass where ParentID='1' order by orders")
If Not rsParent.EOF Then 
    parentData = rsParent.GetRows()
    
    ' 循环父类 
    For i = 0 To UBound(parentData, 2)
        Dim parentObj, childArr 
        Set parentObj = Server.CreateObject("Scripting.Dictionary")
        
        ' 保存父类信息 
        parentObj.Add "id", parentData(0, i)
        parentObj.Add "name", parentData(1, i)
        
        ' 查询子类 
        Set rsChild = conn.Execute("select C.Comid,C.Title,C.OutUrl,C.TJtitle,C.Logo,C.ZSstar " & _
                                   "from BDcompany T,Company C " & _
                                   "where T.Comid=C.Comid and C.IsPass=1 " & _
                                   "and T.classid='"  & parentData(0, i) & "' " & _
                                   "order by Orders, T.AddTime desc, T.ID desc")
        
        ' 初始化子数组 
        childArr = Array()
        If Not rsChild.EOF Then 
            childData = rsChild.GetRows()
            For j = 0 To UBound(childData, 2)
                Set childObj = Server.CreateObject("Scripting.Dictionary")
                childObj.Add "comid", childData(0, j)
                childObj.Add "title", childData(1, j)
                childObj.Add "outurl", childData(2, j)
                childObj.Add "tjtitle", childData(3, j)
                childObj.Add "logo", childData(4, j)
                childObj.Add "zsstar", childData(5, j)
                ReDim Preserve childArr(j)
                Set childArr(j) = childObj 
            Next 
        End If 
        rsChild.Close 
        
        ' 添加子类到父对象 
        parentObj.Add "children", childArr 
        
        ' 添加父对象到主数组 
        ReDim Preserve resultArr(i)
        Set resultArr(i) = parentObj 
    Next 
End If 
rsParent.Close 
 
' 关闭数据库连接 
conn.Close 
Set conn = Nothing 
 
' 转换为JSON格式输出 
Response.ContentType = "application/json"
Response.Write("{""data"":" & toJSON(resultArr) & "}")
 
' 自定义转JSON函数 
Function toJSON(data)
    Dim jsonStr 
    If IsArray(data) Then 
        jsonStr = "["
        For Each item In data 
            If TypeName(item) = "Dictionary" Then 
                jsonStr = jsonStr & dictToJSON(item) & ","
            End If 
        Next 
        If Right(jsonStr, 1) = "," Then jsonStr = Left(jsonStr, Len(jsonStr)-1)
        jsonStr = jsonStr & "]"
    Else 
        jsonStr = "null"
    End If 
    toJSON = jsonStr 
End Function 
 
Function dictToJSON(dict)
    Dim jsonStr 
    jsonStr = "{"
    For Each key In dict.Keys 
        value = dict(key)
        jsonStr = jsonStr & """" & key & """:"
        If IsArray(value) Then 
            jsonStr = jsonStr & toJSON(value)
        ElseIf TypeName(value) = "Dictionary" Then 
            jsonStr = jsonStr & dictToJSON(value)
        Else 
            jsonStr = jsonStr & """" & value & """"
        End If 
        jsonStr = jsonStr & ","
    Next 
    If Right(jsonStr, 1) = "," Then jsonStr = Left(jsonStr, Len(jsonStr)-1)
    dictToJSON = jsonStr & "}"
End Function 
%>


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