2012-01-10 121 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) + "}" 

有假设所有的属性值都是你的例子中的情况。