いけむランド

はてダからやってきました

csv2json

とある事情でテスト用のテーブルフィクスチャを読み込むことが csv から直接できなかった (PHP array にする必要があった) ため、用意していた csv を json に変換するツールを探した。


rubygems にも 同名のパッケージ があったが、インストールしてもパス周りに設定が上手くできなかったため、諦めて C で書かれているこちらを使った。

ちなみにそのままコンパイルしたツールに吐かせた json を PHP の json_decode しても null を返すため、ツールに若干の修正が必要であった。(理由は以下のとおり。)

<?php

// 以下の文字列は JavaScript としては有効ですが JSON としては無効です

// 名前と値はダブルクォートで囲む必要があります
// シングルクォートは使えません
$bad_json = "{ 'bar': 'baz' }";
json_decode($bad_json); // null

// 名前をダブルクォートで囲まなければなりません
$bad_json = '{ bar: "baz" }';
json_decode($bad_json); // null

// 最後にカンマをつけてはいけません
$bad_json = '{ bar: "baz", }';
json_decode($bad_json); // null 
?>


要するに名前の方もダブルクオートしないといけない。