`
xiang588
  • 浏览: 313621 次
  • 性别: Icon_minigender_1
  • 来自: 甘肃平凉
社区版块
存档分类
最新评论

简单json对象for asp

阅读更多
正在做一个asp+jquery的网上答疑系统
今天放在学校的服务器上测试了一下
结果一直有问题,但是什么错都不报
整了半天原来是编码问题,文件是utf-8的编码
改成gb2312就好了
但是asp生成json的时候提示
Microsoft VBScript 运行时错误 错误 '800a01ad' 

ActiveX 部件不能创建对象: 'Scripting.Dictionary' 

服务器又没办法改,只能改代码
幸运的是网上的高手还是多
我找个了简单json对象for asp
改了一下就可以用了
不过需要转换编码



下面是我找的一个简单json对象for asp

<Script language="VBScript" runat="Server">
'===========================================================
'
\ <Assembly>
'
\    <Name>Json</Name>
'
\     <Version>1.0.11.6</Version>
'
\     <Classes>
'
\         <Class value="simpleJson">
'
\             <Description>操作简单json对象</Description>
'
\         </Class>
'
\     </Classes>
'
\ </Assembly>
'
===========================================================
    'json 的 string对象,内部类,用户不必自己操作
    CLASS jsonString
        
PRIVATE p_str
        
        
PUBLIC SUB Class_Initialize()
            p_str
=""
        
END SUB
    
        
PUBLIC SUB Class_Terminate()
            p_str
=NULL
        
END SUB
        
        
PUBLIC PROPERTY LET v(value)
            p_str
=value
        
END PROPERTY
        
        
PUBLIC PROPERTY GET v
            v
=p_str
        
END PROPERTY
        
        
PUBLIC FUNCTION parseString()
            
IF isNull(p_str) THEN
                parseString
="null"
            
ELSE
                parseString
="'"+p_str+"'"    
            
END IF
        
END FUNCTION
        
    
END CLASS
    
    
'json 的 Number对象,内部类,用户不必自己操作
    CLASS jsonNumber
        
PRIVATE p_number
        
        
PUBLIC SUB Class_Initialize()
            p_number
=NULL
        
END SUB
    
        
PUBLIC SUB Class_Terminate()
            p_number
=NULL
        
END SUB
        
        
PUBLIC PROPERTY LET v(value)
            p_number
=value
        
END PROPERTY
        
        
PUBLIC PROPERTY GET v
            v
=p_number
        
END PROPERTY
        
        
PUBLIC FUNCTION parseString()
            
IF isNull(p_number) THEN
                parseString
="null"
            
ELSE
                parseString
=Cstr(p_number)
            
END IF
        
END FUNCTION
    
END CLASS
    
    
'json 的 value对象,包括自动创建string对象,number对象,true,false,null
    CLASS jsonValue
        
PRIVATE p_val
        
        
PUBLIC SUB Class_Initialize()
            p_val
=NULL
        
END SUB
    
        
PUBLIC SUB Class_Terminate()
            p_val
=NULL
        
END SUB
        
        
'给value对象赋值,参数可以是string类型,number类型,boolean类型和null,除外,将全部转化为string类型
        PUBLIC PROPERTY LET v(value)
            
DIM jStr,jNum
            
IF varType(value)=vbBoolean OR varType(value)=vbNull THEN
                p_val
=value
            
ELSEIF varType(value)=vbString THEN
                
SET jStr=NEW jsonString
                jStr.v
=value
                
SET p_val=jStr
                
SET jStr=NOTHING
            
ELSEIF isNumeric(value) THEN
                
SET jNum=NEW jsonNumber
                jNum.v
=value
                
SET p_val=jNum
                
SET jNum=NOTHING
            
ELSE
                
SET jStr=NEW jsonString
                jStr.v
=Cstr(value)
                
SET p_val=jStr
                
SET jStr=NOTHING
            
END IF
        
END PROPERTY
        
        
PUBLIC PROPERTY GET v
            
IF isObject(p_val) THEN
                
SET v=p_val
            
ELSE
                v
=p_val    
            
END IF
        
END PROPERTY
        
        
'对象以合适的形式转换成字符串表示
        PUBLIC FUNCTION parseString()
            
IF isNull(p_val) THEN
                parseString
="null"
            
ELSEIF varType(p_val)=vbBoolean THEN
                parseString
=LCase(Cstr(p_val))
            
ELSE
                parseString
=p_val.parseString()
            
END IF
        
END FUNCTION
        
    
END CLASS
    
    
'json 的 array对象
    CLASS jsonArray
        
PRIVATE p_array,p_length
        
        
PUBLIC SUB Class_Initialize()
            p_array
=Array()
            p_length
=0
        
END SUB
    
        
PUBLIC SUB Class_Terminate()
            p_array
=NULL
            p_length
=0
        
END SUB
        
        
'动态设置数组长度
        PUBLIC PROPERTY LET length(value)
            
IF value<0 THEN value=0
            p_length
=value
            
REDIM Preserve p_array(p_length)
        
END PROPERTY
        
        
'获得数组长度
        PUBLIC PROPERTY GET length()
            length
=p_length
        
END PROPERTY
        
        
'设置索引为index的元素
        PUBLIC PROPERTY LET at(index,ByRef value)
            
IF index>=0 OR index<p_length THEN
                
SET p_array(index)=value
            
END IF
        
END PROPERTY        
        
        
'获得索引为index的元素,如果index超出范围,返回null
        PUBLIC PROPERTY GET at(index)
            
IF index<0 OR index>=p_length THEN
                at
=NULL
            
ELSE
                
SET at=p_array(index)
            
END IF
        
END PROPERTY
    
        
'添加value到数组末尾
        PUBLIC SUB push(ByRef value)
            p_length
=p_length+1
            
REDIM Preserve p_array(p_length)
            
SET p_array(p_length-1)=value
        
END SUB
        
        
'获得数组末尾元素,并从数组中删除该元素
        PUBLIC FUNCTION pop()
            
SET pop=p_array(p_length-1)
            p_length
=p_length-1
            
REDIM Preserve p_array(p_length)
        
END FUNCTION
        
        
'添加value到数组头部
        PUBLIC SUB unshift(ByRef value)
            
DIM i,jVal
            p_length
=p_length+1
            
REDIM Preserve p_array(p_length)
            
FOR i=p_length-1 TO 1 STEP -1
                
SET p_array(i)=p_array(i-1)
            
NEXT
            
SET p_array(0)=value
        
END SUB
        
        
'获得数组头部元素,并从数组中删除该元素
        PUBLIC FUNCTION shift()
            
DIM i
            
SET shift=p_array(0)
            
FOR i=0 TO p_length-2
                
SET p_array(i)=p_array(i+1)
            
NEXT
            p_length
=p_length-1
            
REDIM Preserve p_array(p_length)
        
END FUNCTION
        
        
'翻转数组
        PUBLIC SUB reverse()
            
DIM i,temp
            
FOR i=0 TO Cint((p_length-1)/2)
                
SET temp=p_array(i)
                
SET p_array(i)=p_array(p_length-1-i)
                
SET p_array(p_length-1-i)=temp
                
SET temp=NOTHING
            
NEXT
        
END SUB
        
        
'对象以合适的形式转换成字符串表示
        PUBLIC FUNCTION parseString()
            
DIM i,str,val
            str
="[_VALUES]"
            
FOR i=0 TO p_length-1
                val
=p_array(i).parseString()
                str
=Replace(str,"_VALUES",val+",_VALUES")
            
NEXT
            str
=Replace(str,",_VALUES","")
            parseString
=str
        
END FUNCTION
    
END CLASS
    
    
'json 的 object对象
    CLASS jsonObject
        
PRIVATE p_member,p_value,p_length
    
        
PUBLIC SUB Class_Initialize()
            p_member
=Array()
            p_value
=Array()
            p_length
=0
        
END SUB
    
        
PUBLIC SUB Class_Terminate()
            p_member
=NULL
            p_value
=NULL
            p_length
=0
        
END SUB
        
        
'检查是否包含指定member,返回该member的顺序索引号,没有返回-1
        PRIVATE FUNCTION include(member)
            
DIM i
            
FOR i=p_length-1 TO 0 STEP -1
                
IF p_member(i)=member THEN EXIT FOR
            
NEXT
            include
=i
        
END FUNCTION
        
        
'设置member的value对象
        PUBLIC PROPERTY SET member(mem,ByRef value)
            
DIM index,length
            index
=include(mem)
            
IF index=-1 THEN
                p_length
=p_length+1
                
REDIM Preserve p_member(p_length)
                
REDIM Preserve p_value(p_length)
                p_member(p_length
-1)=mem
                
SET p_value(p_length-1)=value
            
ELSE
                
SET p_value(index)=value
            
END IF
        
END PROPERTY
        
        
'获得member的value对象
        PUBLIC PROPERTY GET member(mem)
            
DIM index
            index
=include(mem)
            
IF index=-1 THEN
                member
=NULL
            
ELSE
                
SET member=p_value(index)
            
END IF
        
END PROPERTY
        
        
'对象以合适的形式转换成字符串表示
        PUBLIC FUNCTION parseString()
            
DIM str,i,mem,val
            str
="{_MEMBERS}"
            
FOR i=0 TO p_length-1
                mem
=p_member(i)
                val
=p_value(i).parseString()
                str
=Replace(str,"_MEMBERS",mem+":"+val+",_MEMBERS")
            
NEXT
            str
=Replace(str,",_MEMBERS","")
            parseString
=str
        
END FUNCTION
    
    
END CLASS
    
    
'操作简单json for asp的类
    CLASS simpleJson
        
PUBLIC SUB Class_Initialize()
        
END SUB
    
        
PUBLIC SUB Class_Terminate()
        
END SUB
        
        
'获得 json的object对象新实例
        PUBLIC FUNCTION nO()
            
SET nO=NEW jsonObject
        
END FUNCTION
        
        
'获得 json的array对象新实例
        PUBLIC FUNCTION nA()
            
SET nA=NEW jsonArray
        
END FUNCTION
        
        
'获得 json的value对象新实例
        PUBLIC FUNCTION nV(value)
            
DIM jVal
            
SET jVal=NEW jsonValue
            jVal.v
=value
            
SET nV=jVal
        
END FUNCTION
        
        
'绑定数据数据,转换成简单json对象,第一个参
分享到:
评论

相关推荐

    经典ASP读取JSON字符串/生成JSON对象,数组对象等。

    这篇关于“经典ASP读取JSON字符串/生成JSON对象,数组对象等”的知识将详细介绍如何在ASP环境中处理JSON数据。 1. **JSON对象与数组的结构**: JSON对象以大括号{}表示,键值对之间用逗号分隔。键必须是字符串,用...

    Send Http Request For Asp with json

    标题“Send Http Request For Asp with json”涉及的是在ASP(Active Server Pages)环境中使用HTTP请求发送JSON数据的技术。在ASP中,我们通常使用XMLHttpRequest对象或者ServerXMLHTTP对象来实现这种功能,这对于...

    Asp操作json全部功能源码和文档

    response.Write(j.get(1)&"&lt;p&gt;") '别用vb数组来存json对象,不然得每个元素去重新序列化,这里如果想j.get(1).oa就不行了。必须对j.get(1)单独序列才行 '----recrodset就不演示了,懒得连数据库 '---自定义操作方法...

    VBScript把json字符串解析成json对象的2个方法

    本文将详细介绍两种将JSON字符串转换为JSON对象的方法:使用MSScriptControl.ScriptControl组件和利用JScript作为中间体。 ### 方法一:使用MSScriptControl.ScriptControl组件 MSScriptControl.ScriptControl组件...

    采用 LINQ to SQL+ Flexigrid for JQuery and Json 创建的ASP.NET MVC 模式程序例子

    在本示例中,我们探讨的是如何利用LINQ to SQL、Flexigrid for JQuery和Json技术来构建一个ASP.NET MVC模式的应用程序。首先,让我们逐一深入理解这些技术及其在项目中的作用。 **LINQ to SQL**(Language ...

    ASP 解析AJAX提交的JSON数据的实例

    1. **创建JSON解析器**:在服务器端的ASP文件中,首先创建一个ScriptControl对象,并设置其Language属性为"JScript",因为JSON.parse()函数是JavaScript的一部分。 ```vbscript Dim jsonCtrl Set jsonCtrl = Server...

    C#平台JSON转换工具

    它可以将C#对象转换为JSON字符串,也可以将JSON字符串转换回C#对象,极大地方便了开发人员的工作。 3. JSON序列化: 序列化是将C#对象转换成JSON字符串的过程。在Json.NET中,可以使用`JsonConvert....

    用于WINCE下http请求和json解析的可用包

    通过Newtonsoft.Json,开发者可以将.NET对象转换为JSON字符串,也可以将JSON字符串转换回相应的.NET对象,这对于网络通信和数据存储非常有用。例如,你可以轻松地将C#类实例转换为JSON,然后发送到服务器,或者接收...

    .net 生成和解析 JSON

    以下是一个简单的示例,演示如何从ASP.NET的HttpContext对象中获取JSON字符串: ```csharp HttpApplication context = HttpContext.Current.ApplicationInstance; string jsonString = null; // 获取输入流并读取...

    asp.net ajax操作xmlHttpRequest对象返回的ResponseXML和ResponseText例子

    在ASP.NET AJAX开发中,XMLHttpRequest对象是进行异步数据通信的核心组件,它允许我们向服务器发送请求并接收响应,而无需刷新整个页面。在这个例子中,我们将关注如何处理服务器返回的数据,特别是`ResponseXML`和`...

    ASP.NET中实现把Json数据转换为ADO.NET DataSet对象

    Newtonsoft.Json库提供了一种简单的方式来处理JSON数据,包括序列化和反序列化等。 在某些情况下,使用Newtonsoft.Json提供的DataSet的Converter可能不是最佳选择,原因可能是这种转换不满足特定项目的需求。文章中...

    基于ASP.NET+XML +JSON实现的Ajax 异步数据操作程序源码例子

    在"Ajax Tutorial for Beginners with XML - JSON- Part 2"这个压缩包中,可能包含了第二部分的教程内容,涉及如何在ASP.NET中设置Ajax请求,以及如何处理XML或JSON数据。可能涵盖的话题包括: 1. 创建ASP.NET Web...

    c# json传值实例 完整sln解决方案

    C#提供了System.Web.Script.Serialization命名空间,其中的JavaScriptSerializer类可以帮助我们将C#对象序列化为JSON字符串,或者将JSON字符串反序列化为C#对象。例如: ```csharp using System.Web.Script....

    Microsoft Ajax For asp.net2.0

    【Microsoft Ajax for ASP.NET 2.0】是一个关键的技术组件,它为开发人员提供了一种在Web应用程序中实现异步交互的能力。这个技术是.NET Framework 2.0的一部分,允许开发者构建更动态、响应更快的网页,提升用户...

    Ajax For ASP.NET

    微软的AJAX库包含了一组强大的JavaScript对象和函数,如XMLHttpRequest对象的封装—— Sys.Net.XMLHttpExecutor,以及用于处理JSON数据的 Sys.Serialization.JavaScriptSerializer。这些工具为开发者提供了更底层的...

    Jquery 组合form元素为json格式,asp.net反序列化

    2、后端ASP.NET用JavaScriptSerializer反序列化为对象实列。 3、好处:简化了前端数据读取与后端数据赋值。 代码如下:function GetJSONStr(class_name) { var a = []; //文本框 $(“.” + class_name).filter(“:...

    asp.net使用DataTable构造Json字符串的方法

    我们使用`StringBuilder`类来构建包含多个JSON对象的数组。首先,我们需要检查DataTable是否为null或空,如果是,则返回null。否则,开始构建JSON数组字符串: ```csharp /// /// 构建JSON字符串 /// /// ...

    JqGrid For ASP.Net

    **JqGrid for ASP.NET** 是一个专门为ASP.NET平台设计的数据网格组件,它结合了jQuery库的灵活性和ASP.NET的强大功能,为Web应用程序提供了一种高效、可定制的数据展示和管理解决方案。JqGrid允许开发者在网页上创建...

    基于Jquery+Ajax+Json实现分页显示附效果图

    通过以上步骤,我们可以成功地利用JQuery、Ajax与JSON技术实现了一个简单的分页显示功能。这种方法不仅提高了用户体验,还减轻了服务器的压力。在未来,随着Web技术的发展,这种技术的应用场景将会更加广泛。

    简单ASP+AJAX实例

    "简单ASP+AJAX实例"是一个教学资源,旨在帮助新手了解如何结合ASP和AJAX来构建无刷新请求功能。在这样的实例中,通常会包含以下几个部分: 1. **ASP后端处理**:使用ASP接收来自客户端的AJAX请求,处理数据(例如...

Global site tag (gtag.js) - Google Analytics