我对asp全然不懂,因为须要使用json的结构,就研究了一下asp的json的使用,拼接一个json的字符串。

測试用例中使用到了一个lib文件:

Json_2.0.3.asp

<%
'
' VBS JSON 2.0.3
' Copyright (c) 2009 Tu餽ul Topuz
' Under the MIT (MIT-LICENSE.txt) license.
' Const JSON_OBJECT = 0
Const JSON_ARRAY = 1 Class jsCore
Public Collection
Public Count
Public QuotedVars
Public Kind ' 0 = object, 1 = array Private Sub Class_Initialize
Set Collection = CreateObject("Scripting.Dictionary")
QuotedVars = True
Count = 0
End Sub Private Sub Class_Terminate
Set Collection = Nothing
End Sub ' counter
Private Property Get Counter
Counter = Count
Count = Count + 1
End Property ' - data maluplation
' -- pair
Public Property Let Pair(p, v)
If IsNull(p) Then p = Counter
Collection(p) = v
End Property Public Property Set Pair(p, v)
If IsNull(p) Then p = Counter
If TypeName(v) <> "jsCore" Then
Err.Raise &hD, "class: class", "Incompatible types: '" & TypeName(v) & "'"
End If
Set Collection(p) = v
End Property Public Default Property Get Pair(p)
If IsNull(p) Then p = Count - 1
If IsObject(Collection(p)) Then
Set Pair = Collection(p)
Else
Pair = Collection(p)
End If
End Property
' -- pair
Public Sub Clean
Collection.RemoveAll
End Sub Public Sub Remove(vProp)
Collection.Remove vProp
End Sub
' data maluplation ' encoding
Function jsEncode(str)
Dim charmap(127), haystack()
charmap(8) = "\b"
charmap(9) = "\t"
charmap(10) = "\n"
charmap(12) = "\f"
charmap(13) = "\r"
charmap(34) = "\"""
charmap(47) = "\/"
charmap(92) = "\\" Dim strlen : strlen = Len(str) - 1
ReDim haystack(strlen) Dim i, charcode
For i = 0 To strlen
haystack(i) = Mid(str, i + 1, 1) charcode = AscW(haystack(i)) And 65535
If charcode < 127 Then
If Not IsEmpty(charmap(charcode)) Then
haystack(i) = charmap(charcode)
ElseIf charcode < 32 Then
haystack(i) = "\u" & Right("000" & Hex(charcode), 4)
End If
Else
haystack(i) = "\u" & Right("000" & Hex(charcode), 4)
End If
Next jsEncode = Join(haystack, "")
End Function ' converting
Public Function toJSON(vPair)
Select Case VarType(vPair)
Case 0 ' Empty
toJSON = "null"
Case 1 ' Null
toJSON = "null"
Case 7 ' Date
' toJSON = "new Date(" & (vPair - CDate(25569)) * 86400000 & ")" ' let in only utc time
toJSON = """" & CStr(vPair) & """"
Case 8 ' String
toJSON = """" & jsEncode(vPair) & """"
Case 9 ' Object
Dim bFI,i
bFI = True
If vPair.Kind Then toJSON = toJSON & "[" Else toJSON = toJSON & "{"
For Each i In vPair.Collection
If bFI Then bFI = False Else toJSON = toJSON & "," If vPair.Kind Then
toJSON = toJSON & toJSON(vPair(i))
Else
If QuotedVars Then
toJSON = toJSON & """" & i & """:" & toJSON(vPair(i))
Else
toJSON = toJSON & i & ":" & toJSON(vPair(i))
End If
End If
Next
If vPair.Kind Then toJSON = toJSON & "]" Else toJSON = toJSON & "}"
Case 11
If vPair Then toJSON = "true" Else toJSON = "false"
Case 12, 8192, 8204
toJSON = RenderArray(vPair, 1, "")
Case Else
toJSON = Replace(vPair, ",", ".")
End select
End Function Function RenderArray(arr, depth, parent)
Dim first : first = LBound(arr, depth)
Dim last : last = UBound(arr, depth) Dim index, rendered
Dim limiter : limiter = "," RenderArray = "["
For index = first To last
If index = last Then
limiter = ""
End If On Error Resume Next
rendered = RenderArray(arr, depth + 1, parent & index & "," ) If Err = 9 Then
On Error GoTo 0
RenderArray = RenderArray & toJSON(Eval("arr(" & parent & index & ")")) & limiter
Else
RenderArray = RenderArray & rendered & "" & limiter
End If
Next
RenderArray = RenderArray & "]"
End Function Public Property Get jsString
jsString = toJSON(Me)
End Property Sub Flush
If TypeName(Response) <> "Empty" Then
Response.Write(jsString)
ElseIf WScript <> Empty Then
WScript.Echo(jsString)
End If
End Sub Public Function Clone
Set Clone = ColClone(Me)
End Function Private Function ColClone(core)
Dim jsc, i
Set jsc = new jsCore
jsc.Kind = core.Kind
For Each i In core.Collection
If IsObject(core(i)) Then
Set jsc(i) = ColClone(core(i))
Else
jsc(i) = core(i)
End If
Next
Set ColClone = jsc
End Function End Class Function jsObject
Set jsObject = new jsCore
jsObject.Kind = JSON_OBJECT
End Function Function jsArray
Set jsArray = new jsCore
jsArray.Kind = JSON_ARRAY
End Function Function toJSON(val)
toJSON = (new jsCore).toJSON(val)
End Function
%>

測试用例:


<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% Response.ContentType = "text/JSON"
%>
<!--#include file="Json_2.0.3.asp"-->
<%
Dim ar
Set ar = jsArray()
Dim Jsons
Set Jsons = jsObject()
Jsons("Name") = "1"
Jsons("Age") = 10 ar(0)=Jsons.jsString
Jsons("Name") = "2"
Jsons("Age") = 20
ar(1)=Jsons.jsString
Jsons("Name") = "3"
Jsons("Age") = 30
ar(2)=Jsons.jsString
Jsons("Name") = "4"
Jsons("Age") = 40
ar(3)=Jsons.jsString
Jsons("Name") = "5"
Jsons("Age") = 50
ar(4)=Jsons.jsString
Jsons("Name") = "6"
Jsons("Age") = 60
ar(5)=Jsons.jsString
Jsons("Name") = "7"
Jsons("Age") = 70
ar(6)=Jsons.jsString
Jsons("Name") = "8"
Jsons("Age") = 80
ar(7)=Jsons.jsString
Jsons("Name") = "9"
Jsons("Age") = 90
ar(8)=Jsons.jsString
Jsons("Name") = "10"
Jsons("Age") = 100
ar(9)=Jsons.jsString
'Response.write ar(0)
'Response.write ar(1)
'Response.write ar(2)
Response.write ar.jsString Response.Write "<BR>" DIM myArray
myArray = Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct", "Nov","Dec")
'Response.write myArray(0) Dim sc
Set sc = CreateObject("MSScriptControl.ScriptControl")
Dim str
'str = "{'uid':'1','username':'abc','email':'123@163.com'}"
str="['aaa','bbb','ccc']"
sc.Language = "JScript"
sc.AddCode "var o = " & str & ";"
Response.Write sc.Eval("o[1]") Set Jsons = Nothing %>

因为对asp了解太少,文章写的不够全面。只是这已经能够满足非常多json的结构了。

希望能够帮助到大家。对你有帮助或者认为值得借鉴的,能够在下方点个赞。谢谢!!

如有转载,请著名来自http://blog.csdn.net/qxs965266509

最新文章

  1. 通过数据库查看EBS的登录地址
  2. Linux学习四:UDP编程(上)
  3. maven的pom.xml配置
  4. 源码安装mysql
  5. iOS开发拓展篇—音频处理(音乐播放器4)
  6. [ASP.NET]谈谈IIS与ASP.NET管道
  7. win7下vs2008编译出现C1859错误的处理办法
  8. 将dataset写入数据库
  9. android 二维码生成+扫描
  10. Kinect For Windows V2开发日志七:照片合成与背景消除
  11. linux启动黑屏或无法进入会话管理器
  12. Jsp中使用数据库连接池.
  13. P/Invoke与逆向P/Invoke
  14. 网络爬虫之定向爬虫:爬取当当网2015年图书销售排行榜信息(Crawler)
  15. 《JavaScript高级程序设计》 -- 变量、作用域和内存问题(二)
  16. mysql内连接的复杂应用
  17. Maven项目中的配置文件找不到以及打包问题
  18. [JCIP笔记](五)JDK并发包
  19. 又见thrift异常之TApplicationException: Internal error processing..
  20. tomcat+nginx实现

热门文章

  1. centos6.5_x86_64 下安装 Oracle11gR2 的详细过程
  2. 【Henu ACM Round#19 B】 Luxurious Houses
  3. 开源企业IM-免费企业即时通讯-ENTBOOST V0.9版本号公布
  4. poj--1237--Drainage Ditches(最大流)
  5. 深度学习 —— 使用 gensim 实现 word2vec
  6. 27.C语言宽字符操作
  7. 对Jscript操作注册表接口的一点不解
  8. React开发实时聊天招聘工具 -第一章
  9. SpringMVC与SpringBoot返回静态页面遇到的问题
  10. 学习《Python数据科学手册》高清中文PDF+高清英文PDF+代码