みなさんこんにちは!今日は、
JSONの形式が分からない
という方に向けて、
- JSONとは
- JSONの形式を完全に理解する
- 正しいJSONかチェックする
- JSONをCSVに変換する
という少し応用的な内容について詳しく解説していくので、JSON初学者の方は是非参考にしていただければ幸いです!
JSONとは
それでは、早速JSONとは何だというところについてみていきましょう。JSONとは、JavaScript Object Notationの略でデータフォーマットの一種です。とは言われても何かよくわかりませんよね。
データを扱うとき、様々なルールを決める必要があります。理由は大きく2つあって、
- 誰が書いても分かるようにするため
- 機械が判別できるようにするため
この2つが主な理由です。JSONはこれらのルールを満たすために定められたデータ形式の一つです。データ形式のことをデータフォーマットと言ったりするんですが、データフォーマットにはJSONだけでなく、CSVや、XMLといったものもあります。
それぞれのデータフォーマットごとに特徴のあるルールが定められていて、本記事ではそのJSONにおけるルールつまり形式を詳しく解説していきます。
JSONの形式を理解しよう!
それでは、JSONの形式を詳しくみていきます。まずは、サンプルのJSONを準備しました。
{ "user": "太郎", "age": 23, "gender": "男" }
こちらですね。まずは、{}波括弧で括りその中にデータを書いていきます。その後左に名前をつけてあげて、右にデータを書いてあげます。そうすることによって、名前を指定することでデータを呼びだすことができます。
一つのデータが書き終わったら、「,」カンマ区切りで次のデータを書いていきます。JavaScriptを書いている人であればあれ、これってオブジェクトじゃない?と思う方もいると思いますが、そうなんです。
最初にも挙げたように、JSONとはJavaScript Object Notationの略ということからもわかるように、オブジェクトのデータ構造をしているんですね。
因みに、Pythonではディクショナリ、Rubyではハッシュ、Golangではマップなどと言語によって呼び名は違いますが、概念は同じなので踊らされないようにしましょう。
keyとは
さて、先程の説明で一つのデータには左に名前をつけて、右にデータを書くという話をしましたがこれにはきちんと名前がついていて、左側のデータにつける名前をkeyと呼びます。
"user": "太郎"
つまりこのデータの”user”がkeyというわけです。
valueとは
また、右側に書くデータのことはvalueと呼びます。
"user": "太郎"
つまり、この場合は”太郎”がvalueですね。余談ですが、先程言語によってハッシュやマップなど、様々な名前がついているという話をしました。
基本的にこのようにkeyとvalueが一つのセットになって扱われる概念はKVS(Key-Value Store)と呼ばれるので頭の片隅に入れておくと言語の違いに惑わされませんね。
実際に使ってみよう!
さて、keyとvalueの概念がわかったところで、実際にvalueをとりだしてみましょう!さきほど、keyを指定してvalueの値を呼び出すと言いましたね。具体的に見ていきましょう。
以下のコードはKVSの概念としてという意味ですので言語によって差異はあまりありません。あくまで概念として捉えてください。
{ "name": "太郎", "age": 23, "gender": "男" }
このようなaJSONがaという変数に入っていたとしたら、
a[“name”]
とすることで”太郎”を呼び出すことができます。複雑なJSONになっても基本的にはこのように呼び出せるのですが、少し難しくなるので詳しく知りたいという方は以下の記事を見てもらえば複雑なJSONにも対応できるようになります。
以下の記事は例としてPythonで書いていますが、どの言語でも大差ないので取り出し方の参考になると思います。
JSONの形式が正しいかどうかチェックしよう!
さて、実際にJSONを書き方が分かったのはいいけど正しいJSONがかけているかわからない、また間違っていてもどこが間違っているかわからないというのは初学者あるあるですね。
文法が正しいかどうか構文チェックをすることをvalitation(バリテーション)と読んだりしますが、今回はオンラインでJSONをバリテーションする方法についてみていきましょう。
今回紹介するサイトはこちらになります。こちらのサイトはバリテーションだけでなく、フォーマット(整形)まで行ってくれるものです。
{"name": "太郎" "age": 23, "gender": "男 }
このように、JSONをコピペしてProcessを押すと、
このように、どこが間違っている教えてくれます。また、右側のJSON Templateによって、一行にしたり、2tabを入れてフォーマッとしたり変更することができます。
きちんと、正しいJSONを入れると、
きちんとできていますね。
JSONの形式をCSVに変換しよう!
さて、次はデータフォーマット間の変換ですね。JSONをCSVに変換する方法をみていきましょう。今回CSVが何かということは大局ではありませんが、気になる方は以下の記事で導入だけサクッとみてみるとよいでしょう。
実際に自分でJSON→CSV変換のプログラムを実装するのも良いですが、こちらもオンラインに既に良いものが上がっているので使えるものは使っていきましょう。紹介するサイトは、こちらですね。
前章で、JSONファイルのバリテーションを行って正しいものにしたらこちらに
このように、コピペするだけでCSVに変換されていますね。Download the entire CSVというところをクリックすれば、csvファイルとしてダウンロードも行えます。
JSONをオブジェクトや文字列に変換する方法
こちらは応用的な話になりますが、JSONを読み込んでオブジェクトとして扱ったり、文字列として扱ったりするために変換したいということもあると思います。
それをエンコード、デコードなどと呼ぶのですが、以下の記事で詳しく説明しているのでこういう変換もあるんだと興味のある方はぜひ見てみてください!
まとめ
いかがでしたか。この記事でJSONとは何か、どう書くのかという基本的なところはもちろん、バリテーションや、変換についても理解できたのではないでしょうか。
JSONはWeb業界などでは今でも多く使われているので是非マスターして読み書きできるようになっておきましょう!それでは!!