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

Javascript 将Json响应保存到数组中的方法,javascript,jquery,json,Javascript,Jquery,Json,我想将每个json响应保存在一个数组中,我是这样写的 $(document).ready(function () { var saveJson = []; var jsonResponse = getjsonResponse() //something with $get function response json format saveJson = saveToArray(jsonResponse.SearchResults);

我想将每个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);
       });
   };
});
但似乎我的代码不起作用,如果JSON未定义,我如何克服这个问题?我只想将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":""
      }
]

谢谢

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

saveJson = saveToArray(jsonResponse.SeachResults); //change this line
(假设定义了
jsonResponse

返回未定义的。尽管将数据推入saveJson,但“saveJson=saveToArray(jsonResponse)”会将saveJson重新分配为未定义

您可能有:

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

你的代码没有真正意义。分配函数
jsonResponse
,然后将其传递给
saveToArray
,将函数视为数组。如果您实际上是调用a函数来获得响应,我假设您发出了Ajax请求。Ajax是异步的。您必须使用处理响应的回调。我建议您看看一些Ajax示例。好的,我将用json示例对象编辑
getjsonResponse
做什么?如果它是异步请求,则需要回调函数来处理它。(不只是假设它加载到下一行)@digitalFresh它的jquery$get函数获取json格式的响应
function(array){
    var ret = [];
    $.each(array,function(i,data){
        ret.push(data);
    });
    return ret;
};