LoginSignup
83
102

More than 1 year has passed since last update.

JSONについて調べてみた

Last updated at Posted at 2018-12-09

JSONとは

JavaScript Object Notation
データを表現するための記法です。
JavaScriptの構文に似ていますが、JavaScriptとは独立して扱われます。
JavaScript以外のプログラミング言語でもJSONを扱うことができる機能が準備されています。

形式

JSONはオブジェクト、もしくは配列で表現されます。

オブジェクト

JSON
{
 "key" : value,
 "key" : value,
 "key" : value
}

オブジェクトの中に、keyvalueのペアであるメンバーを複数含むことができます。
このメンバーは順序付けされていません。

  • メンバー("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文字列の状態では、プロパティにアクセスすることはできませんが、オブジェクトへ変換することでプロパティにもアクセスすることができるようになります。

83
102
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
83
102