Json数据获取值问题

Json data getting values issue

本文关键字:问题 数据获取 Json      更新时间:2023-09-26

我正在使用jQuery getJson方法从json中获取值。。。以下是我的代码。。

         //var data_url="message.json";
         var data_url="php/server_processing.php";
         var count = 0;//will be computed(no of entries in json file)
         var paginationCount=20;
         var i=0,j=0;
         var symflag=0;
         $(window).load(function () {
                 $.getJSON(data_url, function(data) {
                     for(var key in data.data) {
                       if(data.data.hasOwnProperty(key)) {
                         count++;
                       }
                     }
                     //alert("count:"+count);
                     var output="";
                     //alert(data.data[0].short_desc);
                     for (i=0;i<paginationCount;i++) {
                        //alert(data.data[i].title);
                        var id=data.data[i].id;
                        var title=data.data[i].title;
                        var short_desc=data.data[i].short_desc;
                        var created_by=data.data[i].created_by;
                        var date=data.data[i].date;
                        var time=data.data[i].time;
                         output+="<div class='brick'><div class=mhead>" 
                         + id + "   "  
                         + title + "</div><div class='mbody'>" 
                         + short_desc + "</div><div class='mfoot'>" 
                         + created_by+ "   " 
                         + date+ "   " 
                         + time+"<a data-toggle='modal' data-target='#myModal' onclick='fillmodaldata(" +i+")'> more...</a></div></div>";
                     }
                     $( "#freewall" ).append( output );
                     wall.fitWidth();
               });
         });

来自php文件的json输入:

{"data":[
{"id":1,"category":"Computer programming","title":"C","short_desc":"C","created_by":"ash","date":"03'/07'/2014","time":9},
{"id":2,"category":"Web","title":"D","short_desc":"asdasdasd","created_by":"mad","date":"03'/07'/2014","time":1},{"id":3,"category":"UI","title":"B","short_desc":"dfvdfvfdv","created_by":"ron","date":"03'/07'/2014","time":2}]}

我使用的是FreewalljQuery插件,我正在尝试从json数据动态地处理消息。但如果我做"alert(data.data[i].title)",我会得到想要的输出。。但在"var id=data.data[i].id",我得到错误数据。数据[I]未定义…

请帮我解决这个问题。。提前感谢

您的for循环可能是个问题。

for (i=0;i<paginationCount;i++) {

如果data.data数组中没有20个项目,它将失败,相反,安全的做法是

for (var i=0, len = data.data.length;i<len;i++) {

您使用静态计数paginationCount作为循环计数器值,因此,如果返回的结果没有paginationCount的项数,则循环将尝试访问超出其限制的元素,从而返回undefined