そもそもJSONって何の略?
JSONは**"JavaScript Object Notation"の略で、
直訳すると「JavaScriptオブジェクト記法」**。
...まだ、あんまりイメージが湧かないので、
更に意訳も入れてもう少しかみ砕いてみた。
↓
JSONは「JavaScriptのオブジェクトの書き方を元にしたデータ定義方法」
こんな感じだろうか。
JSONとは?
とりあえず、何の略なのか調べて、日本語訳もしてみたけど、
具体的に何なの?とまだ頭の中がクエスチョンマークの為、もう少し調べてみよう。
Wikiには、↓のように書いてあった。
JavaScript Object Notation(JSON、ジェイソン)はデータ記述言語の1つである。軽量なテキストベースのデータ交換用フォーマットでありプログラミング言語を問わず利用できる。名称と構文はJavaScriptにおけるオブジェクトの表記法に由来する。
(引用元: Wikipedia, 2021/01/28)
この文章を見ると、何となくJSONがデータのやり取りをする為の言語(フォーマット)だというのが分かる。
では実際に、どのように、どのようなデータをやり取りするのか。
筆者なりに、実際にシステム開発に携わったことがない人にもわかるように、
分かりやすくまとめてみる。
例えば、あるWebサイトに登録しているユーザがログインするとする。
まずログインする為には、画面からユーザ固有のユーザIDとパスワードなどが必要である。
それで画面から、
ユーザID: hogehoge@sample.com
PASSWORD: testtest
などど入力してログインボタンを押してみる。
すると、画面側からデータの管理しているところへ「このユーザ、いる?」と確認するために、
確認したいユーザのデータ(この話で言うと、ユーザIDとPASSWORD)を送ることになる。
その送るときのデータの書き方がいくつかあるのだけど、その中の一つがJSONということ。
それで、実際どのような形で送るのかというと、
最初にも書いた通り、JavaScriptのオブジェクト型に似た形式で送る。
例えば、↓みたいな感じ。
{
"user_id": "hogehoge@sample.com",
"password": "testtest"
}
この書き方では、{ } (中括弧)でひとまとまりのデータを表していて、
上の例で考えると、**"1ユーザがログインする為に必要なひとまとまりの情報"**と
認識してもらえればいい。
ひとまとまりのデータなので、この設定はこの値、あの設定はあの値という風に書けるのが特徴。
例でも、ユーザIDは "user_id": "hogehoge@sample.com"、パスワードは "password": "testtest"と
書いてまとめておくことが可能。
それで前に書いた内容に戻って、本来これは元々JavaScriptで扱うオブジェクトの書き方を真似てるって話だが、
↓ がJavaScriptで同じデータをオブジェクト型で表現したときの書き方。
var user_login = {
user_id: "hogehoge@sample.com",
password: "testtest"
}
上の例ではJavaScriptの変数というものを使っていて、
変数であるuser_loginに、JavaScriptのオブジェクト型のデータを代入している。
これを見ると、JSONとJavaScriptのオブジェクトの書き方はほとんど同じであることが分かる。
しいて言うのであれば、user_idとかpasswordとかの項目名の部分に""(ダブルクォーテーション)が付いていないだけ。
だから、本当にJSONはJavaScriptのオブジェクトの書き方をほぼ丸パクしているのが分かる。
まとめ
そんなこんなで、ここまでJSONのことを簡単に触れてきたけど、
最後にもう一度簡単にまとめると、
JSONとは...
何らかのデータのやり取りをするときに使う、
データを渡すためのフォーマット(書き方)の一つで、
それはJavaScriptをほとんど真似して作られた
ってこと。
あとがき
今回、自分の中での整理も含めて、初めてQiitaに投稿する記事として書いてみた。
何か読んでみて個々の書き方わかりづらいとか、そういうコメント等があれば、
是非今後のご参考までに遠慮せず教えて下さい。
最後まで読んでくれてありがとう。