asp生成json數據

看過網上很多asp無限分類的代碼,認爲在遞歸代碼中重複獲取記錄集,這樣太耗資源了。

下面的方法是一次獲取所有的無限分類記錄,然後通過函數轉換成json格式,這種方法不用重複執行rs獲取記錄集。

表結構

ID  主鍵ID

navName  導航名稱

pID 父ID,0爲頂級欄目

sortID   排序ID


	'遞歸函數,把數據庫表的數據轉換成json數據,arrData-數組,parentID-父ID
	sub dataToJson(byref arrData,byval parentID)
		dim m, n
		n = 0
		m = 0
		echo "["
		Do While m<=ubound(arrData,2)
			if arrData(2,m)=parentID then
				if n <> 0 then echo ","
				n = n + 1
				echo "{"
				echo """ID"":" & arrData(0,m)&","
				echo """navName"":""" & arrData(1,m)&""","
				echo """pID"":" & arrData(2,m)&","
				echo """sortID"":" & arrData(3,m)&","
				echo """childList"": "
				call dataToJson(arrData,arrData(0,m))
				echo "}"
			end if
			m=m+1
		loop
		echo "]"
	end sub
	

	'dim conn,arrData,temp,i,j,string
	'set conn = new dataConn
	'arrData = conn.getRowsByPa(1,"select id,navName,pID,sortID from Lim_nav where langID=? order by pID asc,sortID asc,addTime desc",array(array("langID",20,1,32,14)))
	'if not isNull(arrData) then
		'call dataToJson(arrData,0)
	'else
	'	echo "no data"
	'end if
	'set conn = nothing


說明:dataconn爲數據庫連接類,已經封裝,getRowsByPa爲類的方法。具體的實現方法可通過rs.getRows,這個方法是返回的是數組格式的記錄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章