Javascript写入多行文本文件

时间:2015-04-28 14:46:52

标签: javascript jquery json parsing

我正在编写一些能从网址中提取json文件并解析json的内容 该脚本可以过滤掉我需要的数据,它可以正常工作。

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

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 .....

2 个答案:

答案 0 :(得分:4)

加入换行符

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

答案 1 :(得分:1)

这应该有用。

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