【はじめてのDataSpider】CSVファイルからJSONに変換してみる

#はじめに
[「ハッカソンでDataSpiderを使って開発をする」](http://qiita.com/appresso_wakino/items/1e678c1168a8d79d02d3)で、環境の準備が整ったら試してみましょう。
今回のサンプルはjsonフォーマットへの変換処理です。
ハッカソンで利用することが多いJSON形式への変換処理になりますので、まずは簡単に動作を確認してみましょう。
そして動きがわかったらパラメータを変更してJSONフォーマットが変化することも確認してみます。
#サンプルスクリプト概要
##処理フロー図
![image](https://qiita-image-store.s3.amazonaws.com/0/35843/cc414815-84e9-9e1c-9a89-aba7a7a9e91c.png)

##テストデータの確認
メニューバー→`エクスプローラ`をクリックします。`data`ディレクトリ内の`json_sample`にサンプルのファイルが格納されています。
- MOCK_DATA.csv　→　読み込むcsvファイルです。
- MOCK_DATA.json　→　スキーマを定義するときに利用したファイルです。

##処理内容
- csvファイルからデータを読み込み
- json形式に変換
- 出力変数に格納する

##マッピング画面
出力したいjsonフォーマットを定義しています
今回はこんな感じに出力したいので、

```json
[
    {
        "id":"1",
        "first_name":"Lisa",
        "last_name":"Black",
        "email":"lblack0@unicef.org",
        "gender":"Female",
        "ip_address":"175.93.184.120"
    },
    {
        "id":"2",
        "first_name":"Christina",
        "last_name":"Lawrence",
        "email":"clawrence1@walmart.com",
        "gender":"Female",
        "ip_address":"237.79.57.56"
    }
]
```
こんな設定になっています。
![image](https://qiita-image-store.s3.amazonaws.com/0/35843/c233d48b-b139-5d3a-6442-eccaa60c41bd.png)

##エンドポイントの確認
###マイ・トリガー
メニューバー→`マイ・トリガー`をクリックします。トリガーが設定されていることが確認できたらダブルクリックして中身を確認します。
![image](https://qiita-image-store.s3.amazonaws.com/0/35843/c03f1f39-7769-f0c5-44c9-b0cedc2114e4.png)
###HTTPトリガーの設定
エンドポイントの設定を行う画面です。
![image](https://qiita-image-store.s3.amazonaws.com/0/35843/04c4d2e7-6b1b-3d5c-01c6-6b45f38869e4.png)
- 実行パス
- 上記設定の説明　→　ここに記載されているURLがエンドポイントになりますので、<b>コピーしておきます。</b>
- レスポンス設定 - Content-Type　→　`application/json`になっていることを確認します。

###実行されるスクリプト
処理されるスクリプトをトリガーに紐付けられています。
![image](https://qiita-image-store.s3.amazonaws.com/0/35843/b2058f0d-0ac4-54c9-d2dd-954b3a129c5d.png)
出力変数もしっかりセットされています。
![image](https://qiita-image-store.s3.amazonaws.com/0/35843/7a2c64d2-11c2-0c4b-2d1d-ce9ff1f252bc.png)

#処理の実行
それでは実際に実行してみます。
ブラウザを起動し、先ほどコピーしたエンドポイントを貼り付けてエンターキーを。
こんな結果が表示されるはずです。
![image](https://qiita-image-store.s3.amazonaws.com/0/35843/93a2cbf2-8639-1a0e-7424-4851846161b0.png)

#jsonフォーマットの変更
出力内容を変更してみます。
現在は`object`が`array`に格納されている、以下のような構造なので、

```json
[
    {
        "id":"1",
        "first_name":"Lisa",
        "last_name":"Black",
        "email":"lblack0@unicef.org",
        "gender":"Female",
        "ip_address":"175.93.184.120"
    },
    {
        "id":"2",
        "first_name":"Christina",
        "last_name":"Lawrence",
        "email":"clawrence1@walmart.com",
        "gender":"Female",
        "ip_address":"237.79.57.56"
    }
]
```

こんな感じで`array`を`array`に格納してみようと思います。

```json
[
    [
        "id":"1",
        "first_name":"Lisa",
        "last_name":"Black",
        "email":"lblack0@unicef.org",
        "gender":"Female",
        "ip_address":"175.93.184.120"
    ],
    [
        "id":"2",
        "first_name":"Christina",
        "last_name":"Lawrence",
        "email":"clawrence1@walmart.com",
        "gender":"Female",
        "ip_address":"237.79.57.56"
    ]
]
```

##マッピング設定
対象スクリプトのマッピング画面を開き、以下のように線を引き直します。
![image](https://qiita-image-store.s3.amazonaws.com/0/35843/e11cd907-2081-8c45-4e42-d591928d8493.png)
プロジェクトをサービスとして上書き保存したら完了です。
![image](https://qiita-image-store.s3.amazonaws.com/0/35843/00fb080e-01f1-6e64-b5c5-1efdc6e0544e.png)

##実行確認
先ほどと同じくURLにアクセスしてみると、正しく設定した値が表示されていることがわかります。
![image](https://qiita-image-store.s3.amazonaws.com/0/35843/61ee6b5a-9906-e0cc-acde-8393abb481ea.png)

#最後に
こんな感じで簡単にjsonフォーマットを変更することができます。
その他参考情報です。

 - [DataSpiderを使った連携処理開発の進め方](http://qiita.com/appresso_wakino/items/b4468538176fca812bc8)
 - [JSON形式のレスポンスデータを作成する](http://qiita.com/appresso_wakino/items/d8fa8c3cd77531e2f371)
 - [HTTPトリガーを使ってWebAPIを作成する](http://qiita.com/appresso_wakino/items/c6845dab7c2acdebf0ff)
 - [プロジェクト間で共通の変数を利用する方法](http://qiita.com/appresso_wakino/items/e3e24bfb2afe3e180b51)
 - [その他](https://qiita.com/hiroyoshi_wakino)