<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% ' 定义数组 Dim data(2) Set data(0) = CreateObject("Scripting.Dictionary") data(0).Add "id", 1 data(0).Add "title", "北京" data(0).Add "caption", "首都" Set data(1) = CreateObject("Scripting.Dictionary") data(1).Add "id", 2 data(1).Add "title", "合肥" data(1).Add "caption", "省会" Set data(2) = CreateObject("Scripting.Dictionary") data(2).Add "id", 3 data(2).Add "title", "重庆" data(2).Add "caption", "直辖市" ' 初始化JSON字符串 Dim jsonResult jsonResult = "[" ' 循环遍历数组 Dim i, itemKey, itemValue For i = 0 To UBound(data) Dim item Set item = data(i) ' 拼接JSON字符串 jsonResult = jsonResult & "{" ' 遍历字典的键值对 For Each itemKey In item.Keys itemValue = item(itemKey) ' 对值中的特殊字符进行转义(这里仅对引号进行简单转义) itemValue = Replace(itemValue, """", "\""") ' 拼接键值对 jsonResult = jsonResult & """" & itemKey & """: """ & itemValue & """," Next ' 移除最后一个逗号并关闭对象括号 jsonResult = Left(jsonResult, Len(jsonResult) - 1)&"}" ' 如果不是最后一个元素,添加逗号 If i < UBound(data) Then jsonResult = jsonResult & "," End If Next ' 移除最后一个逗号(如果有的话)并关闭数组括号(实际上在这个例子中不需要,因为我们已经确保了) ' 但为了代码的通用性,我们还是保留这一步 ' jsonResult = Left(jsonResult, Len(jsonResult) - (IIf(InStrRev(jsonResult, ",") = Len(jsonResult), 1, 0))) ' 由于上面的循环已经确保了不会有多余的逗号,所以下面这行代码是多余的,但为了说明,我保留注释 ' 直接关闭JSON数组(因为我们已经确保了格式正确) ' jsonResult = jsonResult "]" (这行代码其实是多余的,因为我们在初始化时已经加了,但保留以确保完整性) ' 注意:由于我们在循环中已经确保了每个对象的正确性,并且没有添加额外的逗号, ' 所以实际上在循环结束后不需要再对jsonResult进行修改来移除多余的逗号。 ' 但由于我们在初始化时已经添加了'[',并且每个对象后面都正确地添加了','(除了最后一个), ' 所以我们只需要确保在循环结束后不添加额外的',',然后直接添加']'即可(但在这个例子中已经是这样做的)。 ' 为了避免混淆,我删除了上面关于移除逗号的注释和多余代码,只保留正确的部分。 ' 最终,jsonResult已经是完整的JSON字符串,无需进一步修改。 ' 输出JSON字符串 Response.ContentType = "application/json" Response.Write jsonResult %>