JS技术

Javascript教程_有关jQuery.autocomplete处理返回的JSON当成字符串的解决办法教程_Java

字号+ 作者:H5之家 来源:H5之家 2015-09-29 14:15 我要评论( )

Javascript教程_有关jQuery.autocomplete处理返回的JSON当成字符串的解决办法教程,学习Javascript教程_有关jQuery.autocomplete处理返回的JSON当成字符串的解决

有关jQuery.autocomplete处理返回的JSON当成字符串的解决办法教程

在网上看到的,都试过失败的情况下,终于看到可以用 eval() 函数可以解决,写下了以下的语句,请高手们指点一下。

在后台返回一个JSON格式的字符串

C#[ReadData.aspx],以下是用Response.Write();的返回结果;

[{Sid:"1",S_Title:"这是第一个JSON",S_Count:"500"},{Sid:"3",S_Title:"这是第二个JSON",S_Count:"125"},{Sid:"3",S_Title:"这是第三个JSON",S_Count:"360"}]

前台

如果要获取Sid,还要在最后设置 .result()。

var Index=-1;

$("#txtTitle").autocomplete("ReadData.aspx",{

    matchContains: true,
    matchCase:false,
    selectFirst:false,
    cacheLength:1,
    delay:5,

    extraParams:{status:"2",limit:"10"},

    parse:function(data){

     //data=rs(data);    //这是如果不是返回JSON格式的字符串所要用的;
     var d=eval("("+data+")");    //此处要用eval函数;
     var rows=new Array();
     for(var i=0;i<d.length;i++){
      rows[rows.length]={data:d[i],value:d[i].Sid,result:d[i].S_Title}
     }
     return rows;
    },
    formatItem:function(row,i,max){

     var Content = i+"/"+max+": [<font color='red'>"+row.Sid+"</font>] "+ row.S_Title;
     if(null!=row.S_Count) Content += " [<font color=\"red\">" + row.S_Count+"</font>]";
    return Content;

    },
    formatMatch:function(row,i,max){
     return row.S_Title;    //这个不知道为什么不能return row.Sid+" "+row.S_Title;
    },
    formatResult:function(row,i,max){
     return row.S_Title;    //这个不知道为什么获取不了 row.Sid;

    }

}).result(function(event,data,formatted){
   Index=((data!=null&&null!=data.Sid)?eval(data.Sid):-1);
  });



以下是处理一个返回不是JSON格式的字符串(例如“这是第一个JSON 1\n这是第二个JSON 2\n这是第三个JSON 3”)的函数;

  function rs(data){
   this.Sid=new Array();
   this.S_Title=new Array();
   data=data.split("\n");
   var json='[';
   for(var i=0;i<data.length;i++){
    var Num=data[i].lastIndexOf(" ");
    this.S_Title[i]=data[i].substring(0,Num);
    this.Sid[i]=data[i].substring(Num+1,data[i].length);
    json+='{Sid:"'+this.Sid[i]+'",S_Title:"'+this.S_Title[i]+'"}';
    if(i<data.length-1) json+=',';
   }
   json+=']';
   //json='[{Sid:" ",S_Title:" "},{Sid:" ",S_Title:" "},{Sid:" ",S_Title:" "}]';  JSON的格式
   return json;
  }

以上代码只在IE上执行,没有在其他浏览器测试过。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Javascript教程_有关jQuery.autocomplete处理返回的JSON当成字符串的解决办法教程_Java

    Javascript教程_有关jQuery.autocomplete处理返回的JSON当成字符串的

    2015-09-29 13:11

  • Javascript教程_有关jQuery.autocomplete处理返回的JSON当成字符串的解决办法教程_Java

    Javascript教程_有关jQuery.autocomplete处理返回的JSON当成字符串的

    2015-09-29 13:11

网友点评