JavaScript を使用して JSON データを CSV 形式でダウンロードする_JavaScript スキル

WBOY
リリース: 2016-05-16 16:21:19
オリジナル
1430 人が閲覧しました

概要:
最近、プロジェクト以外の小規模な要件があります。これは、後の管理とメンテナンスを容易にするために、プロジェクト開発における分業を文書化することです。ただし、開発時に分業体制がjson形式で記録されていたため、jsonデータをcsv形式でローカルにダウンロードするようにしました。

コード:

コードをコピーします コードは次のとおりです:



CSV をダウンロード
<頭>




&lt; h3&gt;&lt; u&gt; json data&lt;/u&gt;&lt;/h3&gt;
を入力します                                                                                                                                                                          
                                                                                                                                                                                                                                         &lt; button class = "download"&gt; csv&lt;/button&gt;
をダウンロードします                                                                                        




.js をダウンロード

コードをコピー

コードは次のとおりです:

$(document).ready(function() {
    "厳密な使用";
    var mo = {
        init: function() {
            $('.download').click(function() {
                var data = $('#txt').val();
                if (データ === '') {
                    戻る;
                }
                mo.JSONToCSVConvertor(data, true);
            });
        }、
        JSONToCSVConvertor: function(JSONData, ShowLabel) {
            var arrData = JSONData のタイプ !== 'オブジェクト' ? JSON.parse(JSONData) : JSONData;
            var CSV = '';
            if (表示ラベル) {
                var row = "";
                for (arrData[0] の変数インデックス) {
                    行 = インデックス ',';
                }
                row = row.slice(0, -1);
                CSV = 行 'rn';
            }
            for (var i = 0; i                 var row = "";
                for (arrData[i] の変数インデックス) {
                    var arrValue = arrData[i][index] == null ? "" : '="' arrData[i][index] '"';
                    行 = arrValue ',';
                }
                row.slice(0, row.length - 1);
                CSV = 行 'rn';
            }
            if (CSV == '') {
                Growl.error("無効なデータ");
                戻る;
            }
            var fileName = "結果";
            if (mo.msieversion()) {
                var IEwindow = window.open();
                IEwindow.document.write('sep=,rn' CSV);
                IEwindow.document.close();
                IEwindow.document.execCommand('名前を付けて保存', true, ファイル名 ".csv");
                IEwindow.close();
            } else {
                var uri = 'データ:アプリケーション/csv;charset=utf-8,' エスケープ(CSV);
                var link = document.createElement("a");
                link.href = uri;
                link.style = "visibility:hidden";
                link.download = fileName ".csv";
                document.body.appendChild(link);
                link.click();
                document.body.removeChild(link);
            }
        },
        msieversion: function() {
            var ua = window.navigator.userAgent;
            var msie = ua.indexOf("MSIE ");
            if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv:11./)) // If Internet Explorer, return version number
            {
                return true;
            } else { // If another browser,
                return false;
            }
            return false;
        },
        main: function() {
            mo.init();
        }
    };
    mo.main();
});

小结:
  注意json格式[{},{}],文件名是在js中定义的变量fileName。主要问题是他会自动添加一行空行,且每个元素都会在值前面加个'='。

下载下来的数据格式为:

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート