2015-04-28 90 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

感謝大家的幫助。得到它的工作。 –