Asp中JSON的使用

我对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‘:‘[email protected]‘}"
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

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-23 13:19:46

Asp中JSON的使用的相关文章

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

JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集合.字典的处理. 一.JSON简介: JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大括号''{}'

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

ASP.NET中JSON的序列化和反序列化 JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集合.字典的处理.     一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是

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

一.Asp.Net Core中的Json序列化处理使用的是Newtonsoft.Json,更多参考:C# Newtonsoft.Json JsonSerializerSettings配置序列化操作,C# Json序列化工具--Newtonsoft.Json简介和使用 1.Newtonsoft.Json仅 依赖.Net Standard所以支持.Net Framework也支持.Net Core 2.更多说明 /* * 1.在Core Mvc中JsonResult 默认支持Get请求 * 2.使用

Asp.Net中JSON的序列化和反序列化-----JavaScriptSerializer ,加上自己工作心得

在工作中和手机通信用到web服务和javascriptSerializer,返回json数据,供手机端调用,一开始返回的数据是一大堆,比如 [{"word_picture9":"http://boss.xbxw.net/Upload/word/guojia/p_yinggelan.jpg","word_picture8":"http://boss.xbxw.net/Upload/word/guojia/p_zhongguo.jpg&qu

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

本文转自:http://www.cnblogs.com/zhaozhan/archive/2011/01/09/1931340.html JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集合.字典的处理.     一.JSON简介 JSON(JavaScript Objec

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

JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集合.字典的处理.     一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是“名值对”的集合.结构由大括号'{}',中括

解决MVC中JSON字符长度超出限制的异常

解决MVC中JSON字符长度超出限制的异常 解决方法如下: http://stackoverflow.com/questions/4155014/json-asp-net-mvc-maxjsonlength-exception 解决MVC中JSON字符长度超出限制的异常,布布扣,bubuko.com

iOS 中json解析数据出现中文乱码的问题

一般服务器的编码格式都是UTF8,这样通过json解析下来的的数据,一般中文是不会出现乱码,但是如果服务器的编码格式不是UTF8,通过json解析的数据中的中文容易出现luan乱码,怎么解决这个问题呢? 一般都是通过转码来解决,但是直接转码,是不能达到效果的,例如 [jsonStringstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] 这样直接转码是达不到效果的. 解析数据的时候,可以先把数据存放在NSdata对象中,

asp中Server.MapPath的使用方法

老是忘记Server.MapPath的使用方法了,下面记录一下,以备后用: 总注:Server.MapPath获得的路径都是服务器上的物理路径,也就是常说的绝对路径 1.Server.MapPath("/") 注:获得应用程序根目录所在的位置,如 C:\Inetpub\wwwroot\. 2.Server.MapPath("./") 注:获得所在页面的当前目录,等价于Server.MapPath(""). 3.Server.MapPath(&qu