Как преобразовать многомерный массив в JSON в классическом ASP? - PullRequest
2 голосов
/ 10 января 2012

У меня есть этот код в классическом ASP:

    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, как показано ниже, в Classical ASP:

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

Кто-нибудь может мне помочь?

1 Ответ

3 голосов
/ 10 января 2012

Вот функция, которая выполнит сериализацию в 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) + "}"

Существует предположение, что все значения свойств являются строками, что имеет место в вашем примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...