#JSONとは
JavaScript Object Notation
データを表現するための記法です。
JavaScriptの構文に似ていますが、JavaScriptとは独立して扱われます。
JavaScript以外のプログラミング言語でもJSONを扱うことができる機能が準備されています。
#形式
JSONはオブジェクト
、もしくは配列
で表現されます。
###オブジェクト
JSON
{
"key" : value,
"key" : value,
"key" : value
}
オブジェクト
の中に、key
とvalue
のペアであるメンバー
を複数含むことができます。
このメンバーは順序付けされていません。
- メンバー(
"key" : value
)は,
で区切って複数定義することができる -
key
は"(ダブルクォート)
で囲む必要がある(シングルクォートではだめ) - 一つの値を分断しない限り、改行やスペースを自由にいれることができる(そのため上記のように成形することができます)
-
value
は以下の型を取ることができる
型 | 説明 |
---|---|
文字列 | "(ダブルクォート)で囲む必要がある |
数値 | 10進数、指数表記を使うことが可能(8進数、16進数は使うことができない) |
オブジェクト | |
配列 | |
boolean | true/false。小文字の必要がある |
null | 小文字の必要がある |
サンプル
{
"user" : {
"name": "Taro",
"age": 30,
"languages": ["Japanese", "English"],
"active": true
}
}
###配列
以下のように、配列として扱うこともできます。
[
{
"name": "Taro",
"age": 30,
"languages": ["Japanese", "English"],
"active": true
},
{
"name": "Aiko",
"age": 33,
"languages": ["Japanese"],
"active": false
},
{
"name": "Hanako",
"age": 29,
"languages": ["English", "French"],
"active": true
}
]
#JavaScriptでのJSONの扱い方
###環境
- Windows10
- Node.js 10.14.1
###Jsonデータの作り方
var userJson = {
"name": "Taro",
"age": 30,
"active": true
}
console.log(userJson.name);
// Taro
###オブジェクトをJSON文字列に変換する
var userObj = {
name: "Taro",
age: 30,
active: true
}
console.log(userObj);
// { name: 'Taro', age: 30, active: true }
var userJson = JSON.stringify(userObj);
console.log(userJson);
// {"name":"Taro","age":30,"active":true}
JSON.stringify
を使用することで、オブジェクトデータをJSON文字列へ変換することができます。
###JSON文字列をオブジェクトに変換する
var userObj = {
name: "Taro",
age: 30,
active: true
}
var userJson = JSON.stringify(userObj); // JSON文字列へ変換
console.log(userJson);
// {"name":"Taro","age":30,"active":true}
console.log(userJson.name);
// undefined
var parsed = JSON.parse(userJson); // オブジェクトへ変換
console.log(parsed);
// { name: 'Taro', age: 30, active: true }
console.log(parsed.name);
// Taro
JSON.parse
を使用することで、JSON文字列をオブジェクトへ変換することができます。
JSON文字列の状態では、プロパティにアクセスすることはできませんが、オブジェクトへ変換することでプロパティにもアクセスすることができるようになります。