はじめに
私自身、普段開発を行っている中でJSON形式のデータをよく扱うのですが、その構造や概要についてふんわりとした理解しか無かったので、自己学習も兼ねてまとめてみました。
JSONとは
JSONとは「JavaScript Object Notation」の略で、「JavaScriptのオブジェクトの書き方を元にしたデータ定義方法」のことです。名前にはJavaScriptと入っていますが、現在ではJavaScriptに限らず、 各種プログラム言語で利用できます。RubyやPythonなど、 現在は多数の言語で利用可能になっています。そのため、これらの言語をまたいで、 あるいはネットワークを通して、データを交換できます。
主にサーバーとWebアプリケーション間でデータを送信する時に使用されます。
JSONの書き方
JSONは {} の中にキーと値をコロンで区切って記述します。キーは必ずダブルクォーテーションで囲む必要があり、シングルクォーテーションだとエラーになります。
キー
:キーは常に引用符で囲まれた文字列です。
値
:値には、文字列、数値、ブール式、配列、またはオブジェクトを指定できます。
キーと値のペア
:キーと値のペアは特定の構文に従い、キーの後にコロンが続き、その後に値が続きます。キーと値のペアはコンマで区切られます。
{
“key1” : “value1”,
“key2” : “value2”,
“key3” : “value3”
}
使える値の種類
文字列:通常は単語を形成するいくつかのプレーンテキスト文字
{“name” : “suzuki”}
数値:整数
{“id”, 1}
ブール値: TrueまたはFalse
{“a” : true, “b” : false}
配列:値の連想配列
{
"id": 1,
"name": "suzuki",
"result": [
87,
83,
71,
59,
91
]
}
オブジェクト:キーと値のペアの連想配列
{
"id": 1,
"name": "suzuki",
"attribute": {
"gender": "male",
"phone_number": "xxxxxxxxxxx",
"birth": "1998/01/01"
}
}
実際に使ってみる
JSON文字列 → オブジェクトへの変換
JSON形式の文字列であるjson_strをJSON.parseに渡してオブジェクトに変換している。
JavaScriptコード
var json_str = '{"id":1, "name":"tanaka", "attribute":{"gender":"male", "phone_number":"xxxxxxxxxxx", "birth":"1991/01/01"}}';
var obj = JSON.parse(json_str)
console.log(obj.name)
console.log(obj.attribute.birth)
結果
tanaka
1991/01/01
オブジェクト → JSON文字列への変換
オブジェクトであるobjを二行目でJSON.stringifyへ渡して、JSONの文字列へ変換している。
JavaScriptコード
var obj = {"id":1, "name":"tanaka", "attribute":{"gender":"male", "phone_number":"xxxxxxxxxxx", "birth":"1991/01/01"}}
var json_str = JSON.stringify(obj)
console.log(json_str)
console.log(typeof json_str)
結果
{
"id": 1,
"name": "tanaka",
"attribute": {
"gender": "male",
"phone_number": "xxxxxxxxxxx",
"birth": "1991/01/01"
}
}
便利ツール
JSONきれい
ごちゃついているJSON型のデータを放り込むだけでスッキリさせてくれます。