-4

「 http://jsfiddle.net/FLR4v/ 」など、jsonをcsvに変換するための投稿をいくつか見ました。この json を csv に変換するようにできませんでした。

これが私のコードです(これはうまく機能しますが、以下のコメントアウトされたvar json3では機能しません)

 <html>
    <head>
    <title>JSON to CSV</title>
    <script src="json.js" type="text/javascript"></script>
    <script type="text/javascript">

    //var json3 = { "inp1:val1": { "data": [ [ 1378267200000, 0.0743 ], [ 1378270800000, 0.1787 ] ] }}
    var json3 = { "data": [ [ 1378267200000, 0.0743 ], [ 1378270800000, 0.1787 ], ] }
    DownloadJSON2CSV(json3.data);

    function DownloadJSON2CSV(objArray)
    {
        var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;

        var str = '';

        for (var i = 0; i < array.length; i++) {
            var line = '';

            for (var index in array[i]) {
                line += array[i][index] + ',';
            }

            // Here is an example where you would wrap the values in double quotes
            // for (var index in array[i]) {
            //    line += '"' + array[i][index] + '",';
            // }

            line.slice(0,line.Length-1); 

            str += line + '\r\n';
        }
        window.open( "data:text/csv;charset=utf-8," + escape(str))
    }

    </script>

   </head>
   <body>
    <h1>This page does nothing....</h1>
</body>
</html>

上記のコードは正常に動作します。私が必要とするのは、上記が以下で動作する必要があることです

var json3 = { "inp1:val1": { "data": [ [ 1378267200000, 0.0743 ], [ 1378270800000, 0.1787 ] ] }}

ご協力いただきありがとうございます

4

1 に答える 1

0

目的の出力が何であるかをまだ明確に説明していません(特に元のjsfiddleがセミコロンで区切られた出力を生成した場合、「CSV」はあいまいです)。

しかし、このオブジェクトを取得すると、コードが機能すると言っているようです。

    var json3 = { "data": [ [ 1378267200000, 0.0743 ], [ 1378270800000, 0.1787 ], ] }

...次のように関数への入力として:

DownloadJSON2CSV(json3.data);

しかし、構造がわずかに異なり、基本的には同じですが、元の構造の周りに追加の「ラッピング」レイヤーがある入力オブジェクトを処理する必要があります。

var json3 = { "inp1:val1": { "data": [ [ 1378267200000, 0.0743 ], [ 1378270800000, 0.1787 ] ] }}

あなたの質問を正確に要約すると、次のものが必要になります。

DownloadJSON2CSV(json3["inp1:val1"].data);

これは、最も外側のオブジェクトの「inp1:val1」プロパティによって参照されるオブジェクトの「data」プロパティによって参照される配列の配列を渡す関数を呼び出します。

(「json」と呼んでいるものは json ではなく、JS のオブジェクト リテラル構文を使用してたまたま作成されたオブジェクトであることに注意してください。)

宿題: MDN の記事Working With Objectsを読んでください。

于 2013-09-15T00:56:29.270 に答える