注意是多行,
单行的话,response.write("{ \"fid\": \""+rs("fid")+"\", \"code\": \""+rs("code")+"\", \"sdate\": \""+rs("sdate")+"\" }")
客户端var myE = tp.parseJSON();
就可以取值了:myE.code但是多行呢,在网上找到1个ASP的类,完全看不懂怎么用啊,那比如说select fid,code,sdate from table 返回3行结果,我如果做成JSON字符串,JS这边又如何取值
单行的话,response.write("{ \"fid\": \""+rs("fid")+"\", \"code\": \""+rs("code")+"\", \"sdate\": \""+rs("sdate")+"\" }")
客户端var myE = tp.parseJSON();
就可以取值了:myE.code但是多行呢,在网上找到1个ASP的类,完全看不懂怎么用啊,那比如说select fid,code,sdate from table 返回3行结果,我如果做成JSON字符串,JS这边又如何取值
myE.code;
myE.sdate;
js这里,用jquery的 $.getJSON(...)如果你要自己解析,那就用eval吧
我的意思是当查询结果是多行的时候,如何把这个查询结果集转化为JSON的字符串,
然后JS如何取值??
alert(a[1].z); ==> 4-----------------------------------
关键不是JSON的问题,是你没明白JSON的本意,
它只是用了JS的对像表示方法.
http://www.json.org/json-zh.html
<%
set rs=server.CreateObject("adodb.recordset")
sql="SELECT fid,code,sdate FROM 表名"
rs.open sql,conn,1,1
if rs.eof then
s="NULL"
else
s="{'mydata':["
for i=0 to rs.recordcount-1
s1="{'fid':'"&rs(0)&"','code':'"&rs(1)&"','sdate':'"&rs(2)&"'}"
if i=0 then s=s&s1 else s=s&","&s1
rs.movenext
next
s=s&"]}"
end if
rs.close
%>
<script>
var ret="<%=s%>"
if (ret=="NULL"){alert('没查到数据');}
else{
var myjson=eval("("+ret+")");
var arr=myjson.mydata, sid='', code='', sdate='';
for (var i=0;i<arr.length;i++){
sid=arr[i].fid; code=arr[i].code; sdate=arr[i].sdate
//do something here..................
}
</script>
<!-- #include file=JSON.asp-->
<%
set rs=server.CreateObject("adodb.recordset")
sql="SELECT fid,code,sdate FROM 表名"
rs.open sql,conn,1,1
s="{"&(new JSON)("mydata", rs, true)&"}"
%>
<script>
var ret="<%=s%>"
if (ret=="NULL"){alert('没查到数据');}
else{
var myjson=eval("("+ret+")");
var arr=myjson.mydata, sid='', code='', sdate='';
for (var i=0;i<arr.length;i++){
sid=arr[i].fid; code=arr[i].code; sdate=arr[i].sdate
//do something here..................
}
</script>