json对象for asp

ASP 处理 JSON 数据详解 本文还有配套的精品资源,点击获取 简介:ASP(Active Server Pages)是一种微软开发的服务器端脚本环境,用于创建动态网页或 Web 应用程序。本示例探讨如何使用 ASP 处理 JSON(JavaScript Object Notation)数据,一种轻量级的数据交换格式。通过解析 JSON 字符串、访问 JSON 对象、操作 JSON 数据和输出 JSON... 阅读详情
<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对象,第一个参数为recordSet对象实例,第二参数为分页大小,不分页设置为null,第三个参数为页号,不分页设置为null
        PUBLIC FUNCTION DataBind(rs,pageSize,pageNo)
            DIM pageCount,recordCount,field
            DIM jObj,jObj_infos,jArr_rows,jObj_row
            
            IF isNull(pageSize) THEN pageSize=0
            IF isNull(pageNo) THEN pageNo=1
            
            IF NOT isNull(rs) AND NOT isEmpty(rs) THEN
                IF pageSize<>0 THEN
                    rs.pageSize=pageSize
                    rs.absolutePage=pageNo
                    pageCount=rs.pageCount
                END IF
                recordCount=rs.recordCount
                SET jObj=nO()
                SET jObj_infos=nO()
                SET jObj_infos.member("recordCount")=nV(recordCount)
                SET jObj_infos.member("pageSize")=nV(pageSize)
                SET jObj_infos.member("pageNo")=nV(pageNo)
                SET jObj.member("infos")=jObj_infos
                SET jObj_infos=NOTHING
                SET jArr_rows=nA()
                DO UNTIL rs.eof
                    SET jObj_row=nO()
                    FOR EACH field IN rs.fields
                        SET jObj_row.member(field.name)=nV(field.value)
                    NEXT
                    jArr_rows.push(jObj_row)
                    rs.moveNext()
                LOOP
                SET jObj.member("rows")=jArr_rows
                SET jArr_rows=NOTHING
                SET DataBind=jObj
            ELSE
                DataBind=NULL
            END IF
        END FUNCTION
    END CLASS
    
</Script>
<!--例子-->
<%
    DIM sJson,jObj,jObj_name,jArr_interest
    SET sJson=NEW simpleJson
    SET jObj=sJson.nO()
    SET jObj_name=sJson.nO()
    SET jObj_name.member("first")=sJson.nV("Terry")
    SET jObj_name.member("last")=sJson.nV("King")
    SET jObj.member("name")=jObj_name
    SET jObj.member("age")=sJson.nV(22)
    SET jObj.member("marrieged")=sJson.nV(true)
    SET jArr_interest=sJson.nA()
    jArr_interest.push(sJson.nV("basketball"))
    jArr_interest.push(sJson.nV("tv game"))
    jArr_interest.push(sJson.nV("girl"))
    SET jObj.member("interest")=jArr_interest
    Response.Write jObj.parseString()
%>
<%
    DIM r,rs
    '获得记录集rs的操作.....
    SET jObj=NEW simpleJson
    SET r=jObj.DataBind(rs,NULL,NULL)
    Response.Write r.parseString()

%>


人生最精彩的不是实现梦想的瞬间,而是坚持梦想的过程。 胜利不是战胜敌人,而是提高自己。我们只要每天进步百分之一,那就是成功。您如果觉得此分享对你有用,那将是我们天天ASP家园对你成功路上的一点帮助!

Asp操作json全部功能源码和文档 Asp 这个老古懂估计没几个人在用了。几年没写代码了,最近要弄个小东西,给手机端提供json数据,不想麻烦别人,自己又只会asp,没办法就自己动手了。网上找了好久都没有一个人能完整的把asp操作json说清楚。最后还是自己搞定的。整出来共享给大家。(ps,还有个原因csdn的分不够用啦,大家看着给点吧。写这个说明文档都用了我两小时。^_^) 以下是示例代码 '说明:json.asp中引用了json.js.asp '其他见文档 '手机很多时候不认gb2312,跳入json的坑就忘记gb2312吧,讨厌的是,如果代码报错,iis会输出gb2312,结果就是乱码,有点烦。 '自己想办法解决吧 response.Charset= "utf-8" dim strJsonData,ovbJson,j dim arrTemp,varname ,i set ovbJson=new vbJson 'asp recrodset和数组转json字符 arrTemp=array("a","{""oa"":""我是oa""}","c") strJsonData=ovbjson.toJson(empty,arrTemp,true) '转换为Json格式的字符串,有兴趣可以自己输出看看是什么 set j=json.parse(strJsonData) '序列化为json对象(或者是数组对象) response.Write(j.get(1)&"") '别用vb数组来存json对象,不然得每个元素去重新序列化,这里如果想j.get(1).oa就不行了。必须对j.get(1)单独序列才行 '----recrodset就不演示了,懒得连数据库 '---自定义操作方法的演示--- strJsonData="{a:1,b:[{c:'我是数组中的点c'}]}" set j=json.parsestr(strJsonData) response.Write(j.b.get(0).c&"") '添加节点的时候注意,如果值是null,会被忽然,这个节点会不存在的。在添加之前记得先检查值 set j=json.add(j,"new","我是新加的节点") response.Write(j.new&"") '下面这句注掉了,是因为这个操作是无效的因为j.b是数组,不能add 'set j=json.add(j.b,"new1","我是加不进的节点") set j.b=j.b.put(j.b.length,j.b.get(0)) response.Write(j.b.get(1).c&",我是新加的数组元素") '因为数组的get方法不允许被赋值,所以不能像下面这样写 'set j.b.get(0)=json.add(j.b.get(0),"new","我会报错") json.add j.b.get(0),"new","我是新加的new我不会报错" json.add j.b.get(0),"new1","我是通过变量取出来的哦" response.Write(j.b.get(0).new&"") varname="new1" response.Write(json.byname(j.b.get(0),varname)&"") for i=0 to j.b.length-1 varname="c" response.Write(json.byname(j.b.get(i),varname)&"我是循环出来的c,索引:"&i&" ") next '最后完整的输出给手机就这样: response.Write json.stringify(j) 立即下载

相关推荐

ASP的JSON类

ASP的JSON类,JSON(JavaScript Object Notation)是基于JavaScript的一个字集,所以JS可以直接对其进行操作,而JS是可以与ASP一起在服务端远行的(Oauth授权时用到的HMAC-SHA1签名函数也是这样实现的)

json for asp

JSON engine of VBScript based ASP server technology, served on it's deficiency of processing speciality. Also there have been like these projects put they had some deficiencies. For instance fi...

adong520888的博客 236

STM32使用 jansson 处理 Json格式字符

STM32 Json 字符的创建和解析1、Json简介2、jansson库的下载安装和报错解决2.1、下载安装2.2、STM32工程文件中导入jansson库2.3、报错解决2.4、修改堆栈空间3、Json 字符的创建4、Json 字符的解析4.1 纯键值对4.2、键的值是一个对象4.3、键的值是一个数组   STM32处理json字符串一般不常见,大部分都是不需要处理的数据,但是在一些通信中需要处理上传或者下传的数据,就别比如在物联网中,有一部分数据就是以json格式传输的,那么就需要对数据经行解析。我简

青烨慕容 7416

asp html转json,ASP生成JSON数据

response.ContentType="text/json"dimj'多重嵌套的JSON,要使用Dictionary才能实现setj=newjsonj.toResponse=falsesetr=server.createobject("scripting.dictionary")setb=server.createobject("scr...

weixin_29913535的博客 939

idea 编译打包nacos2.0.3源码,生成可执行jar 包常见问题

idea 编译打包nacos2.0.3源码,生成可执行jar 包常见问题

fyihdg的专栏 1217

Vercel静态站被墙别慌!手把手教你用Cloudflare免费CDN+域名解析搞定DNS污染

本文详细介绍了如何利用Cloudflare免费CDN和域名解析解决Vercel静态网站遭遇DNS污染的问题。通过诊断DNS污染、设计Cloudflare解决方案架构、实战配置步骤以及高级调优技巧,帮助用户快速恢复站点访问并提升防护能力。

weixin_27442001的博客 676

【Bug】Self referencing loop detected for property

【Bug】Self referencing loop detected for property

欢迎指错||纠正||建议||水评+点赞&&评论&&关注&&转发 982

SPSS新手教程—两步聚类之结果解读

在《详解SPSS两步聚类之参数设置》一文中,我们已经了解了两步聚类的优点、分析原理,以及参数设置的技巧。 在本节中,会对IBM SPSS Statistics聚类后的结果进行解读,其中会涉及到最终聚类的结果、聚类的质量、变量重要性、聚类特征的解读。 如图1所示,我们先来回顾下本例数据在参数设置面板中的详细设置。 图1:二阶聚类设置 一、数值结果 根据上述参数设置,得到如下的数值分析结果。 首先看到自动聚类结果,如图2所示为聚类的透视表结果,展示了不同聚类数目下的BIC、BIC变化量、BIC变

nekonekoboom的博客 3万+

Self referencing loop detected for property异常

Self referencing loop detected for property异常,.NET抛出的循环引用异常

weixin_43604220的博客 1862

SAP中关于预测需求的重要载体:计划独立需求

预测,就是为了调节客户需求的波动、不平衡,使企业的生产计划、物料计划尽量平稳、有序的必备工具。计划独立需求,Planned Independent Requirement(PIR)是SAP系统中最常见的预测需求。

saplakes的博客 1878

PCL RANSAC拟合分割圆柱体模型【2026最新版】

使用RANSAC拟合分割圆柱的原理介绍、官网示例代码实现以及一个可视化拟合出来的圆柱的具体应用案例。博客长期更新,最近一次更新时间为:2026年1月28日。

点云侠的博客 40万+

简单json对象for asp

遗憾的是,本来cpaint可以提供json for asp的,不过不知道为何原因,最后并没有发布asp部分,郁闷之下,自己努力写了个简单的json对象,以供asp来操作生成json。 Script language="VBScript" runat="Server">===========================================================

terrykingcha的专栏 1451

YOLOv11改进 | 损失函数改进篇 | MPDIoU、InnerMPDIoU助力细节涨点(二次创新 + 代码解析)

本文为读者详细介绍了YOLOv11模型的最新改进,带来的改进机制是最新的损失函数MPDIoU和融合了最新的Inner思想的InnerMPDIoU(效果打爆之前的所有的损失函数提升检测精度和处理细节方面的作用。通过深入探讨MPDIoU和InnerMPDIoU(全网首发)的工作原理和实际代码实现,本文旨在指导读者如何将这些先进的损失函数技术应用到YOLOv11模型中,以提高其性能和准确性。文章内容涵盖从理论基础、代码实现,到实际教你如何添加本文的机制到你的模型中。

Snu77的博客 4021

asp.net mvc4中Json的应用

做一个简单的 Json实例,从页面获取后台的Json数据 1、控制台: public class HomeController : Controller { // // GET: /Home/ public ActionResult Index() { if (Reques...

weixin_34000916的博客 141

YOLOV12进阶:MSDA多尺度空洞注意力机制解析与实战,突破检测尺度瓶颈

在目标检测中,“尺度差异”是个老大难问题——大目标占据画面大半,小目标可能只有几个像素,普通模型很难同时精准检测。而MSDA(Multi-Scale Dilated Attention,多尺度空洞注意力)就像给模型配备了“变焦眼镜”,能同时关注不同尺度的目标,让YOLOV12在大、中、小目标检测上都能表现出色。这篇教程会带你从原理到实操,掌握这个强大的注意力机制,让你的检测模型真正“通吃”各种尺度的目标。MSDA的“多尺度空洞注意力”设计,是目标检测突破尺度瓶颈的关键一步。

know_F0727的博客 263

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

asp.net返回JSON格式数据总结

我发现自己写过好几篇相关主题的文章:asp.net中如何返回JSON格式的数据、asp.net中如何返回JSON格式的数据。现在回过头来看看这些文章,五花八门。尽管如此,每次遇到要返回JSON,我仍然一脸茫然,需要翻出这些文章查阅一番。 来个总结吧。 一、asp.net web api 这是for api的,有别于mvc using System.Web.Http; using System.We...

左直拳的马桶_日用桶 8729

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ASP输出JSON对象实例:让后端数据交互更高效的解决方案

ASP输出JSON对象实例:让后端数据交互更高效的解决方案 去发现同类优质开源项目:https://gitcode.com/ ASP输出JSON对象实例:项目的核心功能/场景 在ASP环境下,直接生成并输出JSON对象,而非JSON字符串,提高数据交互效率。 项目介绍 在当今的Web开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,得到了广泛应用...

gitblog_06725的博客 924

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ASP生成JSON数据

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->

wangchaoqi1985的博客 7227

关于asp输出json对象的方法及实例

相信大家对于asp和json都不陌生,当下json应用的非常广泛,但asp语言中并没有可以直接生成json对象的方法,我在网上查了很多资料,关于asp生成json对象的方法,大多都写得很简单,大多很差强人意,有的虽然是写了关键的代码,但并没有实际的案例可供参考。现在我就把我实现的代码贴出来供大家参考。 1.目的:用asp得到json对象: {"total":17,"rows":[{

zxhj963的博客 3万+
上一篇: 显示电子表格数据库
下一篇: 选择案例
ASP2014
博客等级 码龄12年 8粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值