JSONの形式を完全理解して読み書きできるようになるための記事

みなさんこんにちは!今日は、

JSONってなんだろう
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で配列の入れ子構造や値の取得方法などをPythonを使って説明!
更新日 : 2019年7月3日

JSONの形式が正しいかどうかチェックしよう!

さて、実際にJSONを書き方が分かったのはいいけど正しいJSONがかけているかわからない、また間違っていてもどこが間違っているかわからないというのは初学者あるあるですね。

文法が正しいかどうか構文チェックをすることをvalitation(バリテーション)と読んだりしますが、今回はオンラインでJSONをバリテーションする方法についてみていきましょう。

今回紹介するサイトはこちらになります。こちらのサイトはバリテーションだけでなく、フォーマット(整形)まで行ってくれるものです。

{"name": "太郎" "age": 23, "gender": "男 }

このように、JSONをコピペしてProcessを押すと、

このように、どこが間違っている教えてくれます。また、右側のJSON Templateによって、一行にしたり、2tabを入れてフォーマッとしたり変更することができます。

きちんと、正しいJSONを入れると、

きちんとできていますね。

JSONの形式をCSVに変換しよう!

さて、次はデータフォーマット間の変換ですね。JSONをCSVに変換する方法をみていきましょう。今回CSVが何かということは大局ではありませんが、気になる方は以下の記事で導入だけサクッとみてみるとよいでしょう。

【Ruby入門】CSVファイルの読み込み・書き込み
更新日 : 2019年1月8日

実際に自分でJSON→CSV変換のプログラムを実装するのも良いですが、こちらもオンラインに既に良いものが上がっているので使えるものは使っていきましょう。紹介するサイトは、こちらですね。

前章で、JSONファイルのバリテーションを行って正しいものにしたらこちらに

このように、コピペするだけでCSVに変換されていますね。Download the entire CSVというところをクリックすれば、csvファイルとしてダウンロードも行えます。

JSONをオブジェクトや文字列に変換する方法

こちらは応用的な話になりますが、JSONを読み込んでオブジェクトとして扱ったり、文字列として扱ったりするために変換したいということもあると思います。

それをエンコードデコードなどと呼ぶのですが、以下の記事で詳しく説明しているのでこういう変換もあるんだと興味のある方はぜひ見てみてください!

JavaScriptのjson stringifyを完全に理解しよう!
更新日 : 2019年6月27日

まとめ

いかがでしたか。この記事でJSONとは何か、どう書くのかという基本的なところはもちろん、バリテーションや、変換についても理解できたのではないでしょうか。

JSONはWeb業界などでは今でも多く使われているので是非マスターして読み書きできるようになっておきましょう!それでは!!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

かい

かい

日向徹かこよすぎか

[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説