注意是多行,
单行的话,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这边又如何取值

解决方案 »

  1.   

    myE.fid;
    myE.code;
    myE.sdate;
      

  2.   

    asp的json类,我有~~
    js这里,用jquery的 $.getJSON(...)如果你要自己解析,那就用eval吧
      

  3.   

    难道我表达的不清楚吗?
    我的意思是当查询结果是多行的时候,如何把这个查询结果集转化为JSON的字符串,
    然后JS如何取值??
      

  4.   

    好好去看json的文档!var s = "[{x:1,y:2,z:3},{x:2,y:1,z:4}]";上面的串, var a = eval(s);alert(a.length); ==> 2;
    alert(a[1].z); ==> 4-----------------------------------
    关键不是JSON的问题,是你没明白JSON的本意,
    它只是用了JS的对像表示方法.
      

  5.   

    下一个json数据类
    http://www.json.org/json-zh.html
      

  6.   

    不使用JSON类:
    <%
      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>
      

  7.   

    使用服务器端JSON类:
    <!-- #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>