分析形式のJSONからCSVへの変換

Backlot UIでカンマ区切りの値(CSV)形式でデータを ダウンロードできます。ここではプログラム上での形式変換の一般的な アプローチを紹介します。

アナリティクスAPIからのレスポンスはすべて、JavaScript Object Notation (JSON)形式です。分析を もっと使いやすくするには、CSVデータを読み込むことができる、表敬サインプログラムの使用をお勧めします。

Backlot APIは言語に依存しないので、特定の言語に焦点を置かずに、 JavaScriptを利用して変換処理を説明します。 インターネットには、さまざまな言語用の多数の無料変換ツールがあります。

以下のJavaScriptプログラム (json.orgのアイデアを基本にしています)例は、配列形式のJSON (名前は json3)をCSVに変換します。実際の実装では、配列を 定義せずに、JSONのレスポンスをファイルへ保存し、ファイルを読み取るか、または以下の スクリプトを変更して他のデータソースから読み取るようにします。同様に、 このスクリプトは新しいウィンドウを開いてCSVデータをダウンロードするよう尋ねますが、この挙動を 変更しても 構いません。
<script src="scripts/json.js" type="text/javascript"></script>
<script type="text/javascript">
var json3 = { "d": "[{\"Id\":1,\"UserName\":\"Sam Smith\"},{\"Id\":2,\"UserName\":\"Fred Frankly\"},{\"Id\":1,\"UserName\":\"Zachary Zupers\"}]" }

DownloadJSON2CSV(json3.d);

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';
   }
   // Might want to change this output
   window.open( "data:text/csv;charset=utf-8," + escape(str))
}
</script>
    
  1. 必要なデータの取得にはAPIリクエストを必ず使用します。 変換できるデータを扱っているか、データの種類に関わらず、データに類似のディメンジョンを含んでいるかを確認してください。
  2. 上記のJavaScriptの改良版、もしくはお使いの言語で、お好きな変換プログラムを使用しデータをCSVに 変換します。

この記事はお役にたちましたか?