将Json响应保存到数组的方法

我想在一个数组中保存每个json响应,我这样写了

$(document).ready(function () { var saveJson = []; var jsonResponse = getjsonResponse() //something with $get function response json format saveJson = saveToArray(jsonResponse.SearchResults); var saveToArray = function(array){ $.each(array,function(i,data){ saveJson.push(data); }); }; }); 

但似乎是我的代码不起作用saveJson得到未定义我怎么能克服这个? 我只想将json响应附加到一个数组对象。

我的样本回复看起来像

  "SearchResults":[ { "TypeFlag":"W", "HashCode":"66093013", "ShortenKey":"http:///k", "Title":"Yahoo! \u003cspan class=\"search-result-highlight\"\u003eSearch\u003c/span\u003e - Web \u003cspan class=\"search-result-highlight\"\u003eSearch\u003c/span\u003e", "Description":"The \u003cb\u003esearch\u003c/b\u003e engine that helps you find exactly what you\u0027re looking for. Find the most relevant information, video, images, and answers from all across the Web.", "Url":"http://search.yahoo.com/", "LastUpdateOn":"6/21/2011 1:01:11 PM", "PageRank":1, "ThumbImageUrl":"" }, { "TypeFlag":"W", "HashCode":"48394089", "ShortenKey":"http:///5i", "Title":"Lijit | Advertising Services, Audience Analytics and Publisher ...", "Description":"I've been using Lijit as my site \u003cb\u003esearch\u003c/b\u003e for several years and the understanding I get about my audience is critical to knowing what my readership is interested in and ...", "Url":"http://www.lijit.com/", "LastUpdateOn":"6/22/2011 11:31:41 PM", "PageRank":10, "ThumbImageUrl":"" } ] 

谢谢

 function(array){ $.each(array,function(i,data){ saveJson.push(data); }); }; 

返回undefined 。 虽然您将数据推送到saveJson,但是“saveJson = saveToArray(jsonResponse)”会将saveJson重新指定为undefined

你可能有 :

 function(array){ var ret = []; $.each(array,function(i,data){ ret.push(data); }); return ret; }; 

你的JSON不是一个数组,你实际上在“SearchResults”中有一个包含数组的对象,所以你必须传递它而不是整个对象:

 saveJson = saveToArray(jsonResponse.SeachResults); //change this line 

(假设定义了jsonResponse