智软工作室主要是为宁波公司提供宁波网站建设,宁波网站制作,宁波做网站公司,宁波外贸网站建设公司,宁波网站优化等项目,以优质的服务,优惠的价格,深的客户信赖。相信有你的加入我们的明天会更有动力!期待与你合作!
  • 宁波智软设计工作室,打造宁波网站制作工作室顶级品牌
  • 智软拥有专业的设计团队
  • 多年网站建设团队为你服务
  • 智软期待与你合作
  • 我们的技能
  • 我们掌握的技能有:dreamweaver,flash,photoshop
  • 宁波高端网站建设服务公司
    2014已经悄然到来,在新的一年我们恭贺所有客户事业蒸蒸日上,同事庆祝智软设计工作室成立5周年,在5周年为众多客户提供了保质量的网站设计与网站制作。 我们在新的一年质量与服务将会更加进一步为更多的客户带来高端的网站设计与服务!期待与你合作
  • 企业网站制作建设原因与服务介绍

    智软设计工作室多年为宁波企业网站制作建设服务一直以来我们以最优惠价格,最优质的质量,最突出的设计!得到了客户的一致认可,我们的服务包括:宁波网站设计,宁波网站建设,宁波网站制作,宁波网站优化,宁波英文网站制作我们会以优质的服务,最低的价格来报答客户!

  • 点击链接网站优化推广介绍

    点击连接网站优化推广-对企业的网站优化和网站推广--对企业的重要性-点击进行详细了解

  • 2014开幕,宁波网站设计服务全面优惠.

    2014开幕,宁波智软设计为宁波企业提供更加优秀的设计和实惠的价格

  • 链接到网站案例展示平台
    智软设计工作为宁波客户网站设计案例展示平台-案例均为定期更新,让新老客户更好的看到我们做的案例,点击查看我们做的网站案例吧!
  • 我们宁波网络公司提供网站一站式解决方案
    智软(宁波网络公司)帮你轻松解决网络问题,网站一站式解决方案
你当前的位置:智软工作室 > 营销与网络 >

asp怎么返回json asp返回json是否通信成功等参数

2019-12-12 17:33

相信大家对于asp和json都不陌生,当下json应用的非常广泛,但asp语言中并没有可以直接生成json对象的方法,这个就比较麻烦了。还好现在有了JSON.asp和json.js 了

 下面介绍 asp怎么返回json 

  

1.目的:用asp得到json对象:

 

{"status": "OK","rows": 2}
 

这是我们将得到的json数据。

 

2.需要引用的文件

  后台需要引入json类文件:  json.asp   ,   

  前台需要引入常用的文件: json2.js<mrak: 这个文件可以到json官网去下载> ,  jquery.js<mark: 这个文件太常见了,不用我说了吧> 

 

3.后台程序代码:(关键的来了)

index_json.asp 页面代码:

 

简单版本

  1. <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 
  2. <%Response.Addheader "Content-Type","text/html; charset=utf-8"%> 
  3. <!--#include file="json.asp"--> 
  4. <% 
  5. Set jsonObj=New json 
  6.     jsonObj.toResponse=False 
  7. Set json_ret = server.createobject("scripting.dictionary")  
  8.  
  9.  
  10. json_ret.Add "status","OK2" 
  11. json_ret.Add "msg",2 
  12. jsonStr = jsonObj.toJSON(Empty,json_ret,False) 
  13. response.Write jsonStr 
  14. %> 

 加入查询数据库版本

二个大家随意用哪个。思路是这样的

 

  1. <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 
  2. <% Response.Addheader "Content-Type","text/html; charset=utf-8"  %> 
  3. <!--#include file="inc/json.asp"--> 
  4. <!--#include file="inc/Conn.asp" --> 
  5. <% 
  6.     Dim sql_class,sql_top,sql_colums,sql_whereBy,sql_orderBy 
  7.     sql_class = request.Item("sql_class") 
  8.     sql_top = request.Item("sql_top") 
  9.     sql_colums = request.Item("sql_colums") 
  10.     sql_whereBy = request.Item("sql_whereBy") 
  11.     sql_orderBy = request.Item("sql_orderBy") 
  12.  
  13.     Sql="select "&sql_top&" "&sql_colums&" from "&sql_class&" where 1=1 "&sql_whereBy&" "&sql_orderBy 
  14. %> 
  15.  
  16. <% 
  17.     Set Rs = Server.CreateObject("ADODB.Recordset")       
  18.     Rs.Open sql,conn,1,3  
  19.     jsonStr = "" 
  20.     rows = "" 
  21.  
  22.     Dim i,json_rows,json_ret,arr_rows 
  23.     Dim myArray() 
  24.     Redim myArray(rs.recordcount-1) '将数组大小重新定义为20 
  25.     Set jsonObj=New json 
  26.     jsonObj.toResponse=False 
  27.     Set json_ret = server.createobject("scripting.dictionary")         
  28.     For i=0 To rs.recordcount-1 
  29.         Set myArray(i) = server.createobject("scripting.dictionary") 
  30.         For Each e In rs.Fields                 
  31.                 'rows = rows &""""& e.Name & """:""" & replace(e.value,chr(34),"@_'_@") & ""","  
  32.                 myArray(i).Add e.Name,e.value  '将key/value加到行数组对象中 
  33.         Next    
  34.         Rs.movenext 
  35.     Next        
  36.     json_ret.Add "total",rs.recordcount 
  37.     json_ret.Add "rows",myArray  
  38.     jsonStr = jsonObj.toJSON(Empty,json_ret,False) 
  39.  
  40.     response.Write jsonStr 
  41.  
  42. %> 

上面的代码是将数据库中的数据取出来并将数据保存为json对象,这里面用到了  dictionary ,目前还没有别的办法生成多层级的json数据,只能用它来生成了。 有人说我可以将数据库的数据取出来然后拼接成json数据格式。 对,没错,我也尝试过,但是你会发现,它生成的永远都是string字符串,不是对象,异步获取json格式或者将这个数据传给一些插件的时候你会发现你怎么也得不到想要的结果,原因就在于格式不正确,你得到的是json string,不是json object。 那又有人说了,我可以在异步获取到这个json string之后再将该数据用eval方法转成json对象,对,没错,是可以。 弊端是有的,而且你会发现很头疼的。 这个问题在稍后的文章里面我会再来解释。

 

4.接下来我们要做的就是将生成的json对象数据异步获取并显示到前台的dom中,看一下demo:

文件名 ajaxShow.html

 

  1.  
    <!DOCTYPE html>
  2.  
    <html lang="zh-cn">
  3.  
    <head>
  4.  
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5.  
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6.  
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalabel=no" />
  7.  
    <meta name="renderer" content="webkit" />
  8.  
    <script type="text/javascript" src="js/json2.js"></script>
  9.  
    <script type="text/javascript" src="js/jquery.js"></script>
  10.  
    <style type="text/css">
  11.  
    body
  12.  
    {
  13.  
    min-width: 1020px;
  14.  
    font-size: 14px;
  15.  
    background: #fff;
  16.  
    font-family: "微软雅黑" ,Microsoft Yahei;
  17.  
    background: #000;
  18.  
    padding:20px;
  19.  
    margin:20px;
  20.  
    }
  21.  
    .tips
  22.  
    {
  23.  
    margin:20px;
  24.  
    width: 50%;
  25.  
    height: auto;
  26.  
    margin: 10px auto;
  27.  
    border: 1px solid #fff;
  28.  
    padding: 20px 5px;
  29.  
    font-size: 16px;
  30.  
    color: #fefefe;
  31.  
    background: rbga(220,220,220,0.8);
  32.  
    word-wrap:break-word;
  33.  
    }
  34.  
    .text-center{ text-align:center}
  35.  
    .min-height{ min-height:300px; }
  36.  
    .radius
  37.  
    {
  38.  
    border-radius:5px;
  39.  
    }
  40.  
    .font-blue
  41.  
    {
  42.  
    color: #034C9A;
  43.  
    }
  44.  
    </style>
  45.  
    <script type="text/javascript">
  46.  
    var url = "http://localhost:701/index_json.asp"
  47.  
    var relations = {
  48.  
    sql_class: "Web_News", //表名
  49.  
    sql_top: "", //取数据总条数 top 10
  50.  
    sql_colums: "News_ID,NewsType_id", //列名,用","隔开,如果全部获取,则填写"*"
  51.  
    sql_whereBy: "and NewsType_id=78",
  52.  
    sql_orderBy: "order by News_ID asc"
  53.  
    }
  54.  
    $.post(
  55.  
    url,
  56.  
    relations,
  57.  
    function (data) {
  58.  
    $('#ajax_data').html(JSON.stringify(data));
  59.  
    var total = data.total;
  60.  
    //$('#ajax_data').html(total);
  61.  
    }
  62.  
    , "json"
  63.  
    );
  64.  
     
  65.  
    function strToJson(str) {
  66.  
    var json = eval('(' + str + ')');
  67.  
    return json;
  68.  
    }
  69.  
    </script>
  70.  
    </head>
  71.  
    <body>
  72.  
     
  73.  
    <div id="header" class="tips radius text-center">
  74.  
    <b>asp生成json对象并异步获取json对象数据 实例</b>
  75.  
    </div>
  76.  
    <div id="Div1" class="tips radius">
  77.  
    以下将显示异步获取的内容:
  78.  
    </div>
  79.  
    <div id="ajax_data" class="tips radius min-height">
  80.  
    </div>
  81.  
    </body>
  82.  
    </html>
 
文件的引用和css我就不说了。关键在于ajax部分,这里我用的是jquery中的$.post()方法,有2出关键点: 第一, url ,相信这个大家都会写对吧,就是你请求的数据源页面,我们的例子中为刚才我们建立的 ajax_index.asp; 第二, 'json',这个参数大家可以查一下jquery关于ajax异步获取部分的手册。该参数就是为了保证生成的数据为json对象。

 

其中你会发现

JSON.stringify(data)
 
这个就是json2.js  json类文件中的方法,该方法就是将json对象转为string类型,以便将结果显示到dom里面。 运行一下http://localhost:701/ajaxShow.html,是不是已经得到了我们想要的数据。

 

这是我们全部的数据,当然我们怎么知道我们获取的是json对象呢,只需要试试data.total能不能获取到就知道了啦;我们改一下$.post()中的代码:

 

  1.  
    //$('#ajax_data').html(JSON.stringify(data));
  2.  
    var total = data.total;
  3.  
    $('#ajax_data').html(total);
 
在刷新一下看看,是不是得到了 17;

 

 

哈哈,果然是得到啦  !  好了,该介绍的就介绍完了,关于问什么不用拼接的方法得到json格式的字符串,期待下一篇文章。

 

 

 

 

更多

【责任编辑:小戴工程师】

上一篇:解决:Uncaught TypeError: Cannot read property 'trigger' of 下一篇:asp Access随机取数据库sql语句

最新文章

2019-12-12 17:33

相关文章

2019-12-12 17:33
网站制作咨询:
QQ:277728291
电话:18668277799
邮箱:277728291@qq.com
期待你来电咨询
回顶部
Copyright 2010 智软工作室 版权所有    智软为宁波公司提供最优惠的网络服务【宁波网站建设,宁波网站制作公司,宁波做网站公司,宁波外贸网站建设公司】我们竭诚为你服务!