2

ASPのSQLクエリを次のようなjsonオブジェクトにシリアル化しようとしています。

[["name1"、 "phone1"、 "email1"、 "address1"]、["name2"、 "phone2"、 "email2"、 "address2"]]

データベースの列と行を通過するために2つのループを作成しました。これが、これまでのところの方法です。

<!--#include file="JSON_2.0.4.asp"-->


SQL = "SELECT name, phone, email, address FROM clients"
Set Connection = Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")
Connection.Open "Provider=sqloledb;SERVER=localhost;DATABASE=mydatabase;UID=;PWD=1234;"  
Recordset.Open SQL,Connection

rsArray = Recordset.getRows()       

ReDim arrObj(UBound(rsArray, 2) - 1)

Dim i, j

For i = 1 To UBound(rsArray, 2)

    ReDim arrProp(UBound(rsArray, 1))

    For j = 0 To UBound(rsArray, 1)
        arrProp(j) = rsArray(j, i)
    Next 

Next

Response.Write toJSON(arrProp)

ここで何が間違っているのか、可能な限りすべての値を変更しようとしました。結果は、テーブルの最後の行(次のように)を示します。もちろん、テーブルからすべての行を取得したいと思います。可能な限りの回答をよろしくお願いします。

["La Musical Fashion"、 "214478457"、 "musical@fashion.pt"、"Av。QuintaGrande、8 R /CEsq。"]

4

1 に答える 1

2

を通じて得られる望ましい結果を得るには、 Array of Arrayslikeを構築する必要があります。 あなたは以下のようなものでそれを行うことができます。Array(Array(col1,col2,col3), Array(col1,col2,col3))toJSON

rsArray = Recordset.getRows()

ReDim Rows(UBound(rsArray, 2))
ReDim Row(UBound(rsArray, 1))
For i = 0 To UBound(Rows)
    For j = 0 To UBound(Row)
        Row(j) = rsArray(j, i)
    Next 
    Rows(i) = Row
Next
Response.Write toJSON(Rows)
于 2012-09-01T18:11:25.347 に答える