700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > asp ajax返回json数据类型 asp怎么返回json asp返回json是否通信成功等参数

asp ajax返回json数据类型 asp怎么返回json asp返回json是否通信成功等参数

时间:2021-09-02 20:16:18

相关推荐

asp ajax返回json数据类型 asp怎么返回json  asp返回json是否通信成功等参数

相信大家对于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 , jquery.js

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

index_json.asp 页面代码:

简单版本

SetjsonObj=Newjson

jsonObj.toResponse=False

Setjson_ret=server.createobject("scripting.dictionary")

json_ret.Add"status","OK2"

json_ret.Add"msg",2

jsonStr=jsonObj.toJSON(Empty,json_ret,False)

response.WritejsonStr

%>

加入查询数据库版本

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

Dimsql_class,sql_top,sql_colums,sql_whereBy,sql_orderBy

sql_class=request.Item("sql_class")

sql_top=request.Item("sql_top")

sql_colums=request.Item("sql_colums")

sql_whereBy=request.Item("sql_whereBy")

sql_orderBy=request.Item("sql_orderBy")

Sql="select"&sql_top&""&sql_colums&"from"&sql_class&"where1=1"&sql_whereBy&""&sql_orderBy

%>

SetRs=Server.CreateObject("ADODB.Recordset")

Rs.Opensql,conn,1,3

jsonStr=""

rows=""

Dimi,json_rows,json_ret,arr_rows

DimmyArray()

RedimmyArray(rs.recordcount-1)'将数组大小重新定义为20

SetjsonObj=Newjson

jsonObj.toResponse=False

Setjson_ret=server.createobject("scripting.dictionary")

Fori=0Tors.recordcount-1

SetmyArray(i)=server.createobject("scripting.dictionary")

ForEacheInrs.Fields

'rows=rows&""""&e.Name&""":"""&replace(e.value,chr(34),"@_'_@")&""","

myArray(i).Adde.Name,e.value'将key/value加到行数组对象中

Next

Rs.movenext

Next

json_ret.Add"total",rs.recordcount

json_ret.Add"rows",myArray

jsonStr=jsonObj.toJSON(Empty,json_ret,False)

response.WritejsonStr

%>

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

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

文件名 ajaxShow.html

body

{

min-width: 1020px;

font-size: 14px;

background: #fff;

font-family: "微软雅黑" ,Microsoft Yahei;

background: #000;

padding:20px;

margin:20px;

}

.tips

{

margin:20px;

width: 50%;

height: auto;

margin: 10px auto;

border: 1px solid #fff;

padding: 20px 5px;

font-size: 16px;

color: #fefefe;

background: rbga(220,220,220,0.8);

word-wrap:break-word;

}

.text-center{ text-align:center}

.min-height{ min-height:300px; }

.radius

{

border-radius:5px;

}

.font-blue

{

color: #034C9A;

}

var url = "http://localhost:701/index_json.asp"

var relations = {

sql_class: "Web_News", //表名

sql_top: "", //取数据总条数 top 10

sql_colums: "News_ID,NewsType_id", //列名,用","隔开,如果全部获取,则填写"*"

sql_whereBy: "and NewsType_id=78",

sql_orderBy: "order by News_ID asc"

}

$.post(

url,

relations,

function (data) {

$('#ajax_data').html(JSON.stringify(data));

var total = data.total;

//$('#ajax_data').html(total);

}

, "json"

);

function strToJson(str) {

var json = eval('(' + str + ')');

return json;

}

asp生成json对象并异步获取json对象数据 实例

以下将显示异步获取的内容:

文件的引用和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()中的代码:

//$('#ajax_data').html(JSON.stringify(data));

var total = data.total;

$('#ajax_data').html(total);

在刷新一下看看,是不是得到了 17;

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。