zoukankan      html  css  js  c++  java
  • js遍历json数据

    先看看json返回的数据结构:

    我需要遍历取出bookreno   与  title  加载到页面容器中去

    首先我要取到 recommendedBookList  字典结构数据,然后遍历反射到相应对象的属性

    主方法这样写:

     $(d.recommendedBookList).each(function(index,item){ 

    //index指下标 
    //item指代对应元素内容

    //this指代每一个元素对象 

    var bookno= item.bookrecno;
    var title = item.title;

            });

    也可这样:

    $.each(d.recommendedBookList, function (index, item) {
    //index指下标
    //item指代对应元素内容

    //this指代每一个元素对象 

    var bookno= item.bookrecno;
    var title = item.title;
    });

    具体代码如下:

                    <div class="con_pic  picMarquee-left">
                        <div class="bd">
                                <ul class="picList">
                                   
                                </ul>
                        </div>
                    </div>
                    <script type="text/javascript">
                        //var a=1;
                        //var b=10;                  
                        $.ajax({
                            type: "get",
                            dataType: "json",                        
                            //data: "page="+a+"&rows="+b+"&return_fmt=" + encodeURIComponent("json"),
                            data: "page=1&rows=12&return_fmt=" + encodeURIComponent("json"),
                            url: "/interface/BookData.cshtml",
                            error: function (XmlHttpRequest, textStatus, errorThrown) { alert(XmlHttpRequest.responseText);},
                            success: function (d) {
                                var bkinfo = "";
                                $.each(d.recommendedBookList, function (index, item) {
                                    //index指下标 
                                    //item指代对应元素内容                                
                                    //debugger
                                   var bookno= item.bookrecno;
                                   var title = item.title;
                                   var bkurl = "http://202.121.31.35/webopac/book/" + bookno;
                                   var bkimg = "http://202.121.31.35/webopac/bscover/" + bookno;
                                   var bkli = "<li><div class='pic'><a href='" + bkurl + "' target='_blank' title='" + title + "'><img src='" + bkimg + "' /></a></div><p class='title'><a href='" + bkurl + "' target='_blank' title='" + title + "'>" +title.substr(0,5) + "</a></p></li>";
                                   bkinfo += bkli;
                                });   
                          
                                $(".picList").html(bkinfo);
                                jQuery(".picMarquee-left").slide({ mainCell: ".bd ul", autoPlay: true, effect: "leftMarquee", vis: 8, interTime: 50 });
                            }
                        });
                    </script>

    ajax调用页面:

    @using ChaoXingPMS.DBEntity;
    @using System.Text;
    
    @{ 
    
        var page = HttpContext.Current.Request["page"];
        var rows = HttpContext.Current.Request["rows"];
        var return_fmt = HttpContext.Current.Request["return_fmt"];
    
        //string _posturl = "http://202.121.31.35/webopac/recommended?page=1&rows=10&return_fmt=json";
        string _posturl = "http://202.121.31.35/webopac/recommended?page=" + page + "&rows=" + rows + "&return_fmt=" + return_fmt;
            
            //通过WebRequest对象获取返回值
            WebClient client = new WebClient();
            client.Headers["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
            client.Headers["Accept-Encoding"] = "gzip,deflate,sdch";
            client.Headers["HOST"] = "opac.lib.shcc.edu.cn";
            client.Headers["Accept-Language"] = "zh-CN,zh;q=0.8";
            client.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36";
            client.Dispose();
            string strLine = "", temp;
            try
            {
                Stream stream = client.OpenRead(_posturl);
                StreamReader sr = new StreamReader(stream);
                while ((temp = sr.ReadLine()) != null)
                {
                    strLine += temp;
                }
                stream.Close();
                sr.Close();
            }
            catch (Exception e)
            {
            }     
            Response.Write(strLine);    
    }

    另附参考博客:

    http://www.cnblogs.com/lovenan/archive/2012/12/07/2807190.html

    JS 循环遍历JSON数据

    JSON数据如:{"options":"[{"text":"王家湾","value":"9"},{"text":"李家湾","valu 
    e":"10"},{"text":"邵家湾","value":"13"}]"} 

    用js可以写成: JSON数据如:{"options":"[{"text":"王家湾","value":"9"},{"text":"李家湾","valu
    e":"10"},{"text":"邵家湾","value":"13"}]"}

    用js可以写成:

    view plaincopy to clipboardprint?
    01.var data=[{name:"a",age:12},{name:"b",age:11},{name:"c",age:13},{name:"d",age:14}];   
    02.      for(var o in data){   
    03.        alert(o);   
    04.        alert(data[o]);   
    05.        alert("text:"+data[o].name+" value:"+data[o].age );   
    06.      }  
    var data=[{name:"a",age:12},{name:"b",age:11},{name:"c",age:13},{name:"d",age:14}];
       for(var o in data){
        alert(o);
      alert(data[o]);
        alert("text:"+data[o].name+" value:"+data[o].age );
       }

    或是

    view plaincopy to clipboardprint?
    01.<script type="text/javascript">   
    02.function text(){   
    03.  var json = {"options":"[{"text":"王家湾","value":"9"},{"text":"李家湾","value":"10"},{"text":"邵家湾","value":"13"}]"}    
    04.  json = eval(json.options)   
    05.  for(var i=0; i<json.length; i++)   
    06.  {   
    07.     alert(json[i].text+" " + json[i].value)   
    08.  }   
    09.}   
    10.</script> 

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/songylwq/archive/2010/12/01/6047609.aspx

    view plaincopy to clipboardprint? 
    01.var data=[{name:"a",age:12},{name:"b",age:11},{name:"c",age:13},{name:"d",age:14}];   
    02.      for(var o in data){   
    03.        alert(o);   
    04.        alert(data[o]);   
    05.        alert("text:"+data[o].name+" value:"+data[o].age );   
    06.      }  
    var data=[{name:"a",age:12},{name:"b",age:11},{name:"c",age:13},{name:"d",age:14}]; 
      for(var o in data){ 
      alert(o); 
    alert(data[o]); 
      alert("text:"+data[o].name+" value:"+data[o].age ); 
      } 

    或是 

    view plaincopy to clipboardprint? 
    01.<script type="text/javascript">   
    02.function text(){   
    03.  var json = {"options":"[{"text":"王家湾","value":"9"},{"text":"李家湾","value":"10"},{"text":"邵家湾","value":"13"}]"}    
    04.  json = eval(json.options)   
    05.  for(var i=0; i<json.length; i++)   
    06.  {   
    07.     alert(json[i].text+" " + json[i].value)   
    08.  }   
    09.}   
    10.</script> 

        window.onload = function () {
            var jsJosn1 = '<%=Jsonstr%>';   //从后台获取json商品字符串
            var obj = eval('(' + jsJosn1 + ')');  //将字符串转为json对象
            obj = eval(obj.TableInfo);
            //循环商品
            for (var i = 0; i < obj.length; i++) {
                //alert(obj[i].BaseProductName + " " + obj[i].BaseProductNO + " " + obj[i].OrderPrice + " " + obj[i].OrderAmount + " " + obj[i].Unit + " " + obj[i].BPID);
                AddProduct(obj[i].BaseProductName, obj[i].BaseProductNO, obj[i].OrderPrice, obj[i].Unit, obj[i].OrderAmount, obj[i].BPID);
            }
        }

     
    http://www.cnblogs.com/Fooo/p/3576367.html
     var obj = {"status":1,"bkmsg":"u6210u529f","bkdata":["u5415u5c1au5fd7","1387580400","u6dfbu52a0u8bb0u5f55"]}{"status":1,"bkmsg":"u6210u529f","bkdata":["u5415u5c1au5fd7","1387580400","u6dfbu52a0u8bb0u5f55"]},{"status":1,"bkmsg":"u6210u529f","bkdata":["u5415u5c1au5fd7","1387580400","u4ec0u4e48u4e5fu6ca1u6709"]}
    ajax请求:
    $.ajax({ 
            url: '/path/to/file', 
            type: 'GET', 
            dataType: 'json', 
            data: {param1: 'value1'}, 
            success: function (obj){  
                //遍历obj 
            } 
        })

    返回的内容在success的函数里面,所有的遍历操作都是在这里面操作的: 

    for循环:

    var obj = { 
            "status":1, 
            "bkmsg":"u6210u529f", 
            "bkdata":["u5415u5c1au5fd7","1387580400","u6dfbu52a0u8bb0u5f55"] 
        } 
       // console.log(obj.length); 
        if (obj.status == 1) { 
            for (var i = 0; i < obj.bkdata.length; i++) { 
                console.log(obj.bkdata[i]); 
            }; 
        }else{ 
            alert("数据有误~"); 
        };

    for in 循环:

    //for in循环 
        for(x in obj.bkdata){ 
            //x表示是下标,来指定变量,指定的变量可以是数组元素,也可以是对象的属性。 
            console.log(obj.bkdata[x]); 
        }  

    //元素 each方法

    if (obj.status == 1) { 
            $(obj.bkdata).each(function(index,item){ 
                //index指下标 
                //item指代对应元素内容 
                //this指代每一个元素对象 
                //console.log(obj.bkdata[index]); 
                console.log(item); 
                //console.log($(this)); 
            }); 
        }else{ 
            alert("数据有误~"); 
        };

    //jquery each方法

    $.each( obj.bkdata, function(index,item){ 
            console.log(item); 
        });  
  • 相关阅读:
    bzoj2733 永无乡 平衡树按秩合并
    bzoj2752 高速公路 线段树
    bzoj1052 覆盖问题 二分答案 dfs
    bzoj1584 打扫卫生 dp
    bzoj1854 游戏 二分图
    bzoj3316 JC loves Mkk 二分答案 单调队列
    bzoj3643 Phi的反函数 数学 搜索
    有一种恐怖,叫大爆搜
    BZOJ3566 概率充电器 概率dp
    一些奇奇怪怪的过题思路
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/4487149.html
Copyright © 2011-2022 走看看