2014-10-30 22 views
0

我是位jquery的新手,并试图提高技能。 我已经从ajax调用了json字符串。现在我只需要根据网格大小来划分它;如何打破json字符串根据页面大小?

我的逻辑是这样的。

首先我必须采取然后物体长度字符串

var _totalLength = returnedData.length; 
var _pageSize = 10; 
var _totalPageRequired = Math.ceil(returnedData.length/_pageSize); 
var array = new Array(_totalPageRequired); 

现在我只需要根据它里面页面大小来创建阵列和地点记录里。

var array = new Array(_totalPageRequired); 

现在我运行for循环,直到_totalPageRequired

for (var i = 0; i < _totalPageRequired; i++) { 
//here i am stucked, i want to know how could i assign 
//per array[i] = the required data from the json string 
// _totalLength = 43 and _pageSize = 10 therefore totalpagedata required is 5 
// for ex: array[0] = returnedData[from index 0 to 9] 
// array[1] = returnedData[from index 10 to 19] and so on 
// array[4] = returnedData[from index 40 - 43] as records end 
} 

人帮助我打破这个JSON字符串。

编辑:我的JSON字符串就像

[{"UserRates":null,"RoleId":2,"Name":"M.Hassaan Khan","RoleName":null,"Password":null,"EmployeeRate":null,"Gender":null,"CategoryId":0,"CategoryName":null,"ClientId":0,"ClientName":null,"UserId":2,"Username":"hassaan09","IsMapped":false,"ProjectId":0,"ProjectName":null,"ProjectTitle":null,"CreationDate":"0001-01-01T00:00:00","ExpectedEndingdate":"0001-01-01T00:00:00","Description":null,"ParentProjectId":0,"Cost":0.0,"Status":false},{"UserRates":null,"RoleId":2,"Name":"Bilawaal","RoleName":null,"Password":null,"EmployeeRate":null,"Gender":null,"CategoryId":0,"CategoryName":null,"ClientId":0,"ClientName":null,"UserId":5,"Username":"test_09","IsMapped":false,"ProjectId":0,"ProjectName":null,"ProjectTitle":null,"CreationDate":"0001-01-01T00:00:00","ExpectedEndingdate":"0001-01-01T00:00:00","Description":null,"ParentProjectId":0,"Cost":0.0,"Status":false},{"UserRates":null,"RoleId":2,"Name":"Zardari","RoleName":null,"Password":null,"EmployeeRate":null,"Gender":null,"CategoryId":0,"CategoryName":null,"ClientId":0,"ClientName":null,"UserId":18,"Username":"register_09","IsMapped":false,"ProjectId":0,"ProjectName":null,"ProjectTitle":null,"CreationDate":"0001-01-01T00:00:00","ExpectedEndingdate":"0001-01-01T00:00:00","Description":null,"ParentProjectId":0,"Cost":0.0,"Status":false},{"UserRates":null,"RoleId":2,"Name":"Nawaz","RoleName":null,"Password":null,"EmployeeRate":null,"Gender":null,"CategoryId":0,"CategoryName":null,"ClientId":0,"ClientName":null,"UserId":30,"Username":"testing111","IsMapped":false,"ProjectId":0,"ProjectName":null,"ProjectTitle":null,"CreationDate":"0001-01-01T00:00:00","ExpectedEndingdate":"0001-01-01T00:00:00","Description":null,"ParentProjectId":0,"Cost":0.0,"Status":false}] 

,我做Json.Parse(data.d)阿贾克斯成功后,所以它转换成对象;

+0

如何是你的JSON格式?你能告诉我们一个关于你的数据应该如何存储到数组中的例子吗?任何jsfiddle? – Andres 2014-10-30 15:16:18

+0

@Andres我编辑过,请检查 – 2014-10-30 15:22:38

+0

当你说_pageSize = 10时,你的意思是什么?你想打印10个页面元素? – Andres 2014-10-30 15:26:43

回答

1

试试这个:http://jsfiddle.net/aras7/b83uzccn/1/

var _totalLength = returnedData.length; 
var _pageSize = 2; 

var array = []; 

var page = 0; 
for(var i = 0;i < returnedData.length;){ 
    var page_data = []; 
    for(var j = 0;j < _pageSize && i < returnedData.length;j++) { 
     page_data.push(returnedData[i]); 
     i++; 
    } 
    array.push(page_data) 
} 
0

在我的手机上输入这个,所以它缺乏解释,希望它可以帮助,并且你正在寻找。

var _totalLength = returnedData.length; 
var _pageSize = 10; 
var array = []; 
var i = -1; 
var currenPage: 
while(++i< _totalLength){ 
    currentPage = Math.floor(i/_pageSize); 
    array [currentPage] = array [currentPage] || []; 
    array [currentPage].push(returnedData[i]); 
}