Javascript 我可以将许多rss提要转换为单个JSON文件吗?

Javascript 我可以将许多rss提要转换为单个JSON文件吗?,javascript,xml,json,rss,winjs,Javascript,Xml,Json,Rss,Winjs,我正在使用Java脚本使用windows 8应用程序 我几乎没有rss提要,例如: 下面的函数获取每个rss提要并转换为一个JSON对象。但我想做的是将所有rss提要获取到一个JSON对象。(有两个rss提要。因此在函数调用之后,它给了我两个单独的JSON对象。但我想要一个对象) (x=0;x

我正在使用Java脚本使用windows 8应用程序

我几乎没有rss提要,例如:

  • 下面的函数获取每个rss提要并转换为一个JSON对象。但我想做的是将所有rss提要获取到一个JSON对象。(有两个rss提要。因此在函数调用之后,它给了我两个单独的JSON对象。但我想要一个对象)

    (x=0;x{ //循环x开始 feedburnerUrl=ListoFeed[x].url, feedUrl=”http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&output=json&num=999&q=“+编码器组件(FeedburneUrl); WinJS.xhr({ url:feedUrl, 响应类型:“rss/json” }).done(函数完成(结果){//result=[object XMLHttpRequest]用于请求的URL var jsonData=JSON.parse(result.response);//jsonData=[object]创建对象 var entries=jsonData.responseData.feed.entries;//entries=[object object][object object][object object]。。。。。。 forEach(函数(条目){//处理条目。。。 log(“{”title:“+entry.title+”,“Date:“+entry.publishedDate+”); }); }); }//循环x完成 }
  • listOfFeed=rss url的数组
  • entries=完整JSON对象中的每个对象(一个URL中有25个项目)
  • jsonData=每个url的JSON格式。所以我得到了两个。但是我想要一个JSON对象用于这两个URL
  • 感谢您的帮助…

    您可以使用加入条目数组。您还可以跟踪未完成请求的数量,然后在达到0时处理条目。比如:

    var allEntries = [];
    var pendingRequestCount = listOfFeed.length;
    
    var onRequestFinished = function() {
      pendingRequestCount--;
    
      if (pendingRequestCount === 0) {
        allEntries.forEach(function (entry) { // process the entries...                                
          console.log('{"title" :"' + entry.title + '","Date":"' + entry.publishedDate + '"},');                          
        });
      }
    };
    
    for (x = 0; x < listOfFeed.length; x++) {
      ... // Same as before
      }).done(function complete(result) {
        var jsonData = JSON.parse(result.response);  
        var entries = jsonData.responseData.feed.entries; 
    
        allEntries = allEntries.concat(entries);
    
        onRequestFinished();        
      });
    }  //loop x finish
    
    var allEntries=[];
    var pendingRequestCount=listOfFeed.length;
    var onRequestFinished=函数(){
    pendingRequestCount--;
    如果(pendingRequestCount==0){
    forEach(函数(条目){//处理条目。。。
    log(“{”title:“+entry.title+”,“Date:“+entry.publishedDate+”);
    });
    }
    };
    对于(x=0;x

    您还应该处理失败的请求,并调用onRequestFinished函数。

    非常感谢您的好意@nkron。一个问题。正如你之前所说,我如何根据发布日期对所有条目进行排序?在哪里添加该方法。。?我使用“添加到上一个位置”。但它只对每个提要进行排序。实际上我可以对所有条目进行排序。。然后我得到了我想要的结果。非常感谢@nkron。我是这个领域的新手,希望你将来也能帮助我。。再次感谢。@robi kumar,谢谢你巧妙地编辑了我的问题。。多谢各位
    var allEntries = [];
    var pendingRequestCount = listOfFeed.length;
    
    var onRequestFinished = function() {
      pendingRequestCount--;
    
      if (pendingRequestCount === 0) {
        allEntries.forEach(function (entry) { // process the entries...                                
          console.log('{"title" :"' + entry.title + '","Date":"' + entry.publishedDate + '"},');                          
        });
      }
    };
    
    for (x = 0; x < listOfFeed.length; x++) {
      ... // Same as before
      }).done(function complete(result) {
        var jsonData = JSON.parse(result.response);  
        var entries = jsonData.responseData.feed.entries; 
    
        allEntries = allEntries.concat(entries);
    
        onRequestFinished();        
      });
    }  //loop x finish