いろいろやってみるにっき

なんとか自分の会社を立ち上げるところまで漕ぎ着けた、てきとーに生きている奴の日記

https化に伴い、表示できなくなっているリンクについて修復中。
2018年から遡って修正し、2015年分まで修正完了。


【小ネタ】CSVから構造化されたJSONを作る

意外と簡単。ポイントは

  1. CSVのデータ項目名はドット'.'区切りで作成。
  2. UTF-8で吐き出す。またExcelで扱うのであればBOMも付ける。
  3. csvtojsonでJSONに変換。

の3つ。

 

CSVの例

a1,a2.b1,a2.b2,a2.b3.c1,a2.b3.c2,a2.b4.c1.d1,a2.b4.c1.d2.e1,a2.b4.c1.d2.e2,a2.b4.c1.d3.e1,a2.b4.c1.d3.e2
ああ,いい,うう,ええ,おお,かか,きき,くく,けけ,ここ
11,22,33,44,55,66,77,88,99,1111

f:id:shigeo-t:20180305095227p:plain

保存するときはutf-8で。 

 

csvtojsonはnpmでインストールする。

 npm i --save csvtojson

Windowsマシンで使用する場合、 Windows Subsystem for Linuxを動かし、Ubuntuをストアアプリとして動作させ、node.jsとnpmをインストールしておく。csvtojsonはnodeを使うので、nodeコマンドにパスが通っていることを確認要。

 

WindowsならExcelもあるので、Windows上にUbuntuがあると一台で全部できる。

f:id:shigeo-t:20180305095945p:plain

f:id:shigeo-t:20180305100105p:plain


csvtojsonのおかげで、JSONは簡単に作れる。 

csvtojson < csvファイル名.csv > jsonファイル名.json

 

上のCSV例をJSON化するとこんな感じ。

[
    {
        "a1": "ああ",
        "a2": {
            "b1": "いい",
            "b2": "うう",
            "b3": {
                "c1": "ええ",
                "c2": "おお"
            },
            "b4": {
                "c1": {
                    "d1": "かか",
                    "d2": {
                        "e1": "きき",
                        "e2": "くく"
                    },
                    "d3": {
                        "e1": "けけ",
                        "e2": "ここ"
                    }
                }
            }
        }
    },
    {
        "a1": "11",
        "a2": {
            "b1": "22",
            "b2": "33",
            "b3": {
                "c1": "44",
                "c2": "55"
            },
            "b4": {
                "c1": {
                    "d1": "66",
                    "d2": {
                        "e1": "77",
                        "e2": "88"
                    },
                    "d3": {
                        "e1": "99",
                        "e2": "1111"
                    }
                }
            }
        }
    }
]

 

ソフトウェアデザイン 2018年3月号
 
JSON at Work: Practical Data Integration for the Web

JSON at Work: Practical Data Integration for the Web