2012年12月14日金曜日

csonv.jsを使ってみる

こんにちは.14日担当の與那覇です.

今回は「csonv.js」の紹介をしたいと思います.
これは,CSV形式のデータをJSON形式に変換してくれるJavaScriptライブラリです.

使い方はとっても簡単,任意のファイル名を以下のように指定してやるだけです.
var data = 'hoge.csv'.toObjects();
これで「hoge.csv」ファイルの中身のCSV形式のデータがJSON形式で出力されるようになります.便利!

しかしこの「csonv.js」,いくつか落とし穴があります.

「csonv.js」で扱うCSVファイルは少々特殊な書き方をしなければなりません.
読み込むファイルは以下のような書き方をします.
id;name;age
integer;string;integer
1;Mike;20
2;Kate;18
1行目はJSONのキー名,2行目は値の形式です.データそのものは3行目以降に記述します. 数値ならば「integer」,文字ならば「string」と設定してやらなければいけません. この値を複数形(ex. strings)にしてやると,1つのキーに対し複数の値を指定することが出来ます.


id;name;age;like
integer;string;integer;strings
1;Mike;20;running,touring
2;Kate;18;reading,swimming
また,サンプルに示している通り,データのセパレータにはセミコロンが使用されています. ExcelファイルでCSVファイルを作成すると,セパレーターはデフォルトでカンマが付きます.
また,カンマは1つのキーで複数のデータを扱う際のセパレーターになっているので,Terapad等で開いて置換する,というのも面倒になります.
というわけで,JSのほうを少々弄ることにします.
「csonv.js」ファイル内,149行目辺りにセパレーターの指定があるので,columnを「,」,arrayを「;」に変更します.

これでExcelでCSVファイルを作っても利用できるようになります. ExcelからCSVファイルを作ると,最後に空行が出来てしまうので,それは削除しておきましょう.

既存の技術をカスタマイズして使いやすくするのもなかなか楽しいですね.

1 件のコメント:

  1. Your blogs are great.Are you also searching for shadow health ? we are the best solution for you. We are best known for delivering shadow health assignments.

    返信削除