2015-04-28 67 views
0

我正在编写一些将json文件从url中解析出来并解析json的东西。
该脚本可以过滤掉我需要的数据,它工作得很好。Javascript写入多行文本文件

现在,我的目标是将数据写入文本文件。我已经实现了这一点,但数据混乱在一条线上。我已经在下面发布了我的代码。

document.getElementById("find").addEventListener("click", sendHTTP); 
 

 
function sendHTTP() 
 
{ 
 
    var httpreq; 
 

 
    if (window.XMLHttpRequest) 
 
    { // code for IE7+, Firefox, Chrome, Opera, Safari 
 
     httpreq = new XMLHttpRequest(); 
 
    } 
 
    else 
 
    { // code for IE6, IE5 
 
     httpreq = new ActiveXObject("Microsoft.XMLHTTP"); 
 
    } 
 

 
    httpreq.onreadystatechange = function() { 
 
     if (httpreq.readyState == 4) 
 
     { 
 
      var store = httpreq.responseText; 
 
      var me = JSON.parse(store); 
 
      var parsed = []; 
 
      try 
 
      { 
 
       for (var i = 0; i < store.length; i++) 
 
       { 
 
        parsed.push(me.products[i].title); // title 
 

 
        for (var j = 0; j < me.products[i].offers.length; j++) 
 
        { 
 
         parsed.push(me.products[i].offers[j].offer_id); // offer_id 
 
        } 
 
       } 
 
      } 
 
      catch (err) 
 
      { } 
 
      finally 
 
      { 
 
       downloadURI("data:text/html," + parsed.join(""), "inventory.txt"); 
 
      } 
 
     } 
 
    }; 
 

 
    httpreq.open("GET", "http://shop.cncpts.com/collections/nike-sb.oembed"); 
 
    httpreq.send(); 
 
} 
 

 
function downloadURI(uri, name) 
 
{ 
 
    var link = document.createElement("a"); 
 
    link.download = name; 
 
    link.href = uri; 
 
    link.click(); 
 
}

功能downloadURI进行下载。
该文本文件将成功下载,但json的数据杂乱无章。

是否有任何可能的方法,我可以使一切都在一个单独的行?例如:

标题
offer_id
标题
offer_id .....

+3

'parsed.join( “\ r \ n”)'可能会得到你的地方 – Jack

+0

@Jack:你的意思是'。加入( '\ r \ n')'肯定? – Bergi

+0

@Bergi假设你在看到我的错误之前看到我的评论:P – Jack

回答

4

加入用换行

downloadURI("data:text/html," + encodeURIComponent(parsed.join("\r\n"), "inventory.txt")); 
+1

你还需要'encodeURIComponent'吗?在URL中有一个真正的新行似乎是错误的 –

+1

@PaulS。 - 啊,这就是缺少的东西,我正在测试,只是不能得到它的工作,但字符串必须被编码,但'数据'部分不能被编码 – adeneo

+0

而且对于实际上*有*换行的窗口+回车('\ r \ n')或者它也不起作用。 – adeneo

1

这应该工作。

downloadURI("data:text/html," + parsed.join("\r\n"), "inventory.txt");

+0

感谢大家的帮助。得到它的工作。 –