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

ASP   2025-03-01 16:19   45   0  
<!--#include file="../../include/dbclass.asp" -->
<!--#include file="JSON_2.0.4.asp" -->
<!--#include file="../../include/funcation.asp" -->
<%
'领域设计
OpenConn()        		'打开数据库连接
Dim db : Set db = New DbCtrl  '建立对象
Co(db) : CloseConn() 	'释放对象,关闭数据库连接

dim pageSize,currentPage
'pageSize = 10
pagesize = Request.QueryString("pageSize")
If Request.QueryString("page") = "" Then
    currentPage = 1
Else
    currentPage = CInt(Request.QueryString("page"))
End If

' 查询父类数据
Set rsParent = db.GetRecordBySQL("select id, MingCheng from BDClass where ParentID='1' order by orders")

' 初始化父类数组
ReDim parentArray(rsParent.RecordCount - 1, 1)

' 循环父类数据
Dim i
i = 0
Do While Not rsParent.EOF
    parentArray(i, 0) = rsParent("id")
    parentArray(i, 1) = rsParent("MingCheng")
    
    ' 查询子类数据
    Set rsChild = db.GetRecordBySQL("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='" & rsParent("id") & "' order by Orders, T.AddTime desc, T.ID desc")
    
    ' 初始化子类数组
    ReDim childArray(rsChild.RecordCount - 1, 5)
    
    ' 循环子类数据
    Dim j
    j = 0
    Do While Not rsChild.EOF
        childArray(j, 0) = rsChild("Comid")
        childArray(j, 1) = rsChild("Title")
        childArray(j, 2) = rsChild("OutUrl")
        childArray(j, 3) = rsChild("TJtitle")
        childArray(j, 4) = rsChild("Logo")
        childArray(j, 5) = rsChild("ZSstar")
        
        rsChild.MoveNext
        j = j + 1
    Loop
    
    ' 将子类数组保存到一个新的父类数组元素中
    ' 使用动态数组来存储子类数据
    ReDim Preserve parentArray(UBound(parentArray, 1), 2)
    parentArray(i, 2) = childArray
    
    rsParent.MoveNext
    i = i + 1
Loop

' 创建一个 jsArray 对象
Dim jsonArray
Set jsonArray = jsArray()

' 遍历 parentArray 并将其元素添加到 jsonArray 中
For i = LBound(parentArray, 1) To UBound(parentArray, 1)
    Dim parentObj
    Set parentObj = jsObject()
    ' 正确设置父对象的属性
    parentObj.Pair("id") = parentArray(i, 0)
    parentObj.Pair("MingCheng") = parentArray(i, 1)
    
    Dim childJsonArray
    Set childJsonArray = jsArray()
    Dim childArray2
    childArray2 = parentArray(i, 2)
    For j = LBound(childArray2, 1) To UBound(childArray2, 1)
        Dim childObj
        Set childObj = jsObject()
        ' 正确设置子对象的属性
        childObj.Pair("Comid") = childArray2(j, 0)
        childObj.Pair("Title") = childArray2(j, 1)
        childObj.Pair("OutUrl") = childArray2(j, 2)
        childObj.Pair("TJtitle") = childArray2(j, 3)
        childObj.Pair("Logo") = childArray2(j, 4)
        childObj.Pair("ZSstar") = childArray2(j, 5)
        ' 正确添加子对象到子 JSON 数组
        Set childJsonArray.Pair(Null) = childObj
    Next
    
    ' 正确添加子 JSON 数组到父对象
    Set parentObj.Pair("children") = childJsonArray
    ' 正确添加父对象到 JSON 数组
    Set jsonArray.Pair(Null) = parentObj
Next

' 输出 JSON 数据
jsonArray.Flush

' 释放资源
Set jsonArray = Nothing
db.C(rsParent)
db.C(rsChild)
conn.Close
Set conn = Nothing
%>


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