0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JSON について メモ

Last updated at Posted at 2021-01-28

そもそも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に投稿する記事として書いてみた。
何か読んでみて個々の書き方わかりづらいとか、そういうコメント等があれば、
是非今後のご参考までに遠慮せず教えて下さい。
最後まで読んでくれてありがとう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?