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

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

  1. Json_2.0.3.asp
  2. <%
  3. '
  4. ' VBS JSON 2.0.3
  5. ' Copyright (c) 2009 Tu餽ul Topuz
  6. ' Under the MIT (MIT-LICENSE.txt) license.
  7. '
  8. Const JSON_OBJECT = 0
  9. Const JSON_ARRAY = 1
  10. Class jsCore
  11. Public Collection
  12. Public Count
  13. Public QuotedVars
  14. Public Kind ' 0 = object, 1 = array
  15. Private Sub Class_Initialize
  16. Set Collection = CreateObject("Scripting.Dictionary")
  17. QuotedVars = True
  18. Count = 0
  19. End Sub
  20. Private Sub Class_Terminate
  21. Set Collection = Nothing
  22. End Sub
  23. ' counter
  24. Private Property Get Counter
  25. Counter = Count
  26. Count = Count + 1
  27. End Property
  28. ' - data maluplation
  29. ' -- pair
  30. Public Property Let Pair(p, v)
  31. If IsNull(p) Then p = Counter
  32. Collection(p) = v
  33. End Property
  34. Public Property Set Pair(p, v)
  35. If IsNull(p) Then p = Counter
  36. If TypeName(v) <> "jsCore" Then
  37. Err.Raise &hD, "class: class", "Incompatible types: '" & TypeName(v) & "'"
  38. End If
  39. Set Collection(p) = v
  40. End Property
  41. Public Default Property Get Pair(p)
  42. If IsNull(p) Then p = Count - 1
  43. If IsObject(Collection(p)) Then
  44. Set Pair = Collection(p)
  45. Else
  46. Pair = Collection(p)
  47. End If
  48. End Property
  49. ' -- pair
  50. Public Sub Clean
  51. Collection.RemoveAll
  52. End Sub
  53. Public Sub Remove(vProp)
  54. Collection.Remove vProp
  55. End Sub
  56. ' data maluplation
  57. ' encoding
  58. Function jsEncode(str)
  59. Dim charmap(127), haystack()
  60. charmap(8) = "\b"
  61. charmap(9) = "\t"
  62. charmap(10) = "\n"
  63. charmap(12) = "\f"
  64. charmap(13) = "\r"
  65. charmap(34) = "\"""
  66. charmap(47) = "\/"
  67. charmap(92) = "\\"
  68. Dim strlen : strlen = Len(str) - 1
  69. ReDim haystack(strlen)
  70. Dim i, charcode
  71. For i = 0 To strlen
  72. haystack(i) = Mid(str, i + 1, 1)
  73. charcode = AscW(haystack(i)) And 65535
  74. If charcode < 127 Then
  75. If Not IsEmpty(charmap(charcode)) Then
  76. haystack(i) = charmap(charcode)
  77. ElseIf charcode < 32 Then
  78. haystack(i) = "\u" & Right("000" & Hex(charcode), 4)
  79. End If
  80. Else
  81. haystack(i) = "\u" & Right("000" & Hex(charcode), 4)
  82. End If
  83. Next
  84. jsEncode = Join(haystack, "")
  85. End Function
  86. ' converting
  87. Public Function toJSON(vPair)
  88. Select Case VarType(vPair)
  89. Case 0 ' Empty
  90. toJSON = "null"
  91. Case 1 ' Null
  92. toJSON = "null"
  93. Case 7 ' Date
  94. ' toJSON = "new Date(" & (vPair - CDate(25569)) * 86400000 & ")" ' let in only utc time
  95. toJSON = """" & CStr(vPair) & """"
  96. Case 8 ' String
  97. toJSON = """" & jsEncode(vPair) & """"
  98. Case 9 ' Object
  99. Dim bFI,i
  100. bFI = True
  101. If vPair.Kind Then toJSON = toJSON & "[" Else toJSON = toJSON & "{"
  102. For Each i In vPair.Collection
  103. If bFI Then bFI = False Else toJSON = toJSON & ","
  104. If vPair.Kind Then
  105. toJSON = toJSON & toJSON(vPair(i))
  106. Else
  107. If QuotedVars Then
  108. toJSON = toJSON & """" & i & """:" & toJSON(vPair(i))
  109. Else
  110. toJSON = toJSON & i & ":" & toJSON(vPair(i))
  111. End If
  112. End If
  113. Next
  114. If vPair.Kind Then toJSON = toJSON & "]" Else toJSON = toJSON & "}"
  115. Case 11
  116. If vPair Then toJSON = "true" Else toJSON = "false"
  117. Case 12, 8192, 8204
  118. toJSON = RenderArray(vPair, 1, "")
  119. Case Else
  120. toJSON = Replace(vPair, ",", ".")
  121. End select
  122. End Function
  123. Function RenderArray(arr, depth, parent)
  124. Dim first : first = LBound(arr, depth)
  125. Dim last : last = UBound(arr, depth)
  126. Dim index, rendered
  127. Dim limiter : limiter = ","
  128. RenderArray = "["
  129. For index = first To last
  130. If index = last Then
  131. limiter = ""
  132. End If
  133. On Error Resume Next
  134. rendered = RenderArray(arr, depth + 1, parent & index & "," )
  135. If Err = 9 Then
  136. On Error GoTo 0
  137. RenderArray = RenderArray & toJSON(Eval("arr(" & parent & index & ")")) & limiter
  138. Else
  139. RenderArray = RenderArray & rendered & "" & limiter
  140. End If
  141. Next
  142. RenderArray = RenderArray & "]"
  143. End Function
  144. Public Property Get jsString
  145. jsString = toJSON(Me)
  146. End Property
  147. Sub Flush
  148. If TypeName(Response) <> "Empty" Then
  149. Response.Write(jsString)
  150. ElseIf WScript <> Empty Then
  151. WScript.Echo(jsString)
  152. End If
  153. End Sub
  154. Public Function Clone
  155. Set Clone = ColClone(Me)
  156. End Function
  157. Private Function ColClone(core)
  158. Dim jsc, i
  159. Set jsc = new jsCore
  160. jsc.Kind = core.Kind
  161. For Each i In core.Collection
  162. If IsObject(core(i)) Then
  163. Set jsc(i) = ColClone(core(i))
  164. Else
  165. jsc(i) = core(i)
  166. End If
  167. Next
  168. Set ColClone = jsc
  169. End Function
  170. End Class
  171. Function jsObject
  172. Set jsObject = new jsCore
  173. jsObject.Kind = JSON_OBJECT
  174. End Function
  175. Function jsArray
  176. Set jsArray = new jsCore
  177. jsArray.Kind = JSON_ARRAY
  178. End Function
  179. Function toJSON(val)
  180. toJSON = (new jsCore).toJSON(val)
  181. End Function
  182. %>

測试用例:


  1. <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
  2. <%
  3. Response.ContentType = "text/JSON"
  4. %>
  5. <!--#include file="Json_2.0.3.asp"-->
  6. <%
  7. Dim ar
  8. Set ar = jsArray()
  9. Dim Jsons
  10. Set Jsons = jsObject()
  11. Jsons("Name") = "1"
  12. Jsons("Age") = 10
  13. ar(0)=Jsons.jsString
  14. Jsons("Name") = "2"
  15. Jsons("Age") = 20
  16. ar(1)=Jsons.jsString
  17. Jsons("Name") = "3"
  18. Jsons("Age") = 30
  19. ar(2)=Jsons.jsString
  20. Jsons("Name") = "4"
  21. Jsons("Age") = 40
  22. ar(3)=Jsons.jsString
  23. Jsons("Name") = "5"
  24. Jsons("Age") = 50
  25. ar(4)=Jsons.jsString
  26. Jsons("Name") = "6"
  27. Jsons("Age") = 60
  28. ar(5)=Jsons.jsString
  29. Jsons("Name") = "7"
  30. Jsons("Age") = 70
  31. ar(6)=Jsons.jsString
  32. Jsons("Name") = "8"
  33. Jsons("Age") = 80
  34. ar(7)=Jsons.jsString
  35. Jsons("Name") = "9"
  36. Jsons("Age") = 90
  37. ar(8)=Jsons.jsString
  38. Jsons("Name") = "10"
  39. Jsons("Age") = 100
  40. ar(9)=Jsons.jsString
  41. 'Response.write ar(0)
  42. 'Response.write ar(1)
  43. 'Response.write ar(2)
  44. Response.write ar.jsString
  45. Response.Write "<BR>"
  46. DIM myArray
  47. myArray = Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct", "Nov","Dec")
  48. 'Response.write myArray(0)
  49. Dim sc
  50. Set sc = CreateObject("MSScriptControl.ScriptControl")
  51. Dim str
  52. 'str = "{'uid':'1','username':'abc','email':'123@163.com'}"
  53. str="['aaa','bbb','ccc']"
  54. sc.Language = "JScript"
  55. sc.AddCode "var o = " & str & ";"
  56. Response.Write sc.Eval("o[1]")
  57. Set Jsons = Nothing
  58. %>

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

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

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

Asp中JSON的使用的更多相关文章

  1. Asp.net中Json的序列化和反序列化(一)

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...

  2. ASP.NET中JSON的序列化和反序列化

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍 ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介 ...

  3. ASP.NET 中JSON 的序列化和反序列化

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...

  4. Asp.Net Core中Json序列化处理整理

    一.Asp.Net Core中的Json序列化处理使用的是Newtonsoft.Json,更多参考:C# Newtonsoft.Json JsonSerializerSettings配置序列化操作,C ...

  5. ASP.NET中JSON的序列化和反序列化(转)

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...

  6. [转]ASP.NET中JSON的序列化和反序列化

    本文转自:http://www.cnblogs.com/zhaozhan/archive/2011/01/09/1931340.html JSON是专门为浏览器中的网页上运行的JavaScript代码 ...

  7. 用ASP创建API。NET Core (Day2):在ASP中创建API。网络核心

    下载PDF article - 1.5 MB 下载source - 152.4 KB 下载source - 206.3 KB 下载source code from GitHub 表的内容 中间件路线图 ...

  8. C#中JSON序列化和反序列化

    有一段时间没有到博客园写技术博客了,不过每天逛逛博客园中大牛的博客还是有的,学无止境…… 最近在写些调用他人接口的程序,用到了大量的JSON.XML序列化和反序列化,今天就来总结下json的序列化和反 ...

  9. android中Json的一些应用

    JSON(JavaScript Object Notation) :一种轻量级的数据交换格式,基于JavaScript的一个子集. JSON采用完全独立于语言的文本格式,使JSON成为理想的数据交换语 ...

随机推荐

  1. webStrom的破解以及汉化

    破解方法: 把JetbrainsCrack-3.1-release-enc.jar包放到bin目录下,然后把webstorm64.exe.vmoptions文件用文本打开, 在最后面加上一句-java ...

  2. 紫书 例题 10-7 UVa 10820 (欧拉函数)

    这道题要找二元组(x, y) 满足1 <= x, y <= n 且x与y互素 那么我就可以假设x < y, 设这时答案为f(n) 那么答案就为2 * f(n) +1(x与y反过来就乘 ...

  3. [USACO15JAN]草鉴定Grass Cownoisseur(分层图+tarjan)

    [USACO15JAN]草鉴定Grass Cownoisseur 题目描述 In an effort to better manage the grazing patterns of his cows ...

  4. PKU 3281 Dining 网络流 (抄模板)

    题意: 农夫约翰为他的牛准备了F种食物和D种饮料.每头牛都有各自喜欢的食物和饮料,而每种食物或饮料只能分配给一头牛.最多能有多少头牛可以同时得到各自喜欢的食物和饮料? 思路: 用 s -> 食物 ...

  5. js中数组增删查改unshift、push、pop、shift、slice、indexOf、concat、join

    js中数组增删查改unshift.push.pop.shift.slice.indexOf.concat.join

  6. FastDFS学习总结(2)--Tracker与Storage配置详解

    1.Tracker基本配置 # is this config file disabled # false for enabled # true for disabled disabled=false ...

  7. ArcGIS api for javascript—测量,测距问题

    首先量测 var map, toolbar, geometryService ; function init() { map=new esri.Map("map",{ extent ...

  8. 用Hexo搭建个人博客

    博客地址: http://astraylinux.com/ 文章地址: http://astraylinux.com/2015/06/02/linux-Init-Hexo/ Step 1 Instal ...

  9. SOAPUI使用

    简介:在开发接口的时候每次验证接口是否正确都需要手动写测试DEMO来验证,使用SOAPUI可以大大减少测试时间. 目录 1.SOPUI介绍... 1 2.SOAPUI使用... 1 2.1新建SOAP ...

  10. AnkhSvn介绍 插件

    转载:http://www.cnblogs.com/lyhabc/articles/2483011.html AnkhSVN是一款在VS中管理Subversion的插件,您可以在VS中轻松的提交.更新 ...