2012-01-10 119 views
2

我有這樣的代碼在古典ASP:如何在經典ASP中將多維數組轉換爲JSON?

dim arr(2,3) 
arr(0,0) = "proc" 
arr(1,0) = "code" 
arr(2,0) = "hour" 

arr(0,1) = "11111" 
arr(1,1) = "01" 
arr(2,1) = "5" 

arr(0,2) = "22222" 
arr(1,2) = "02" 
arr(2,2) = "6" 

arr(0,3) = "33333" 
arr(1,3) = "03" 
arr(2,3) = "4" 

,我想在一個JSON古典ASP變換像下面太:

{"process":[ 
       {"proc" : "11111", "code" : "01", "hour":"5"}, 
       {"proc" : "22222", "code" : "02", "hour":"6"}, 
       {"proc" : "33333", "code" : "03", "hour":"4"} 
       ] 
    } 

任何人都可以幫我嗎?

回答

3

這裏是將執行序列化JSON爲您所使用的類型記錄陣列功能:

Function RecordArrayToJSON(arr) 

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

    Dim i, j 
    For i = 1 To UBound(arr, 2) 
     ReDim arrProp(UBound(arr, 1)) 
     For j = 0 To UBound(arr, 1) 
      arrProp(j) = """" & arr(j, 0) & """ : """ & arr(j, i) & """" 
     Next 

     arrObj(i-1) = "{" & Join(arrProp, ", ") & "}" 
    Next 

    RecordArrayToJSON = "[" + Join(arrObj, ",") + "]" 
End Function 

你用得到最終JSON:

Dim json : json = "{""process"":" + RecordArrayToJSON(arr) + "}" 

有假設所有的屬性值都是你的例子中的情況。