JavaScript
JSON
92
どのような問題がありますか?

投稿日

更新日

Organization

JSONについて調べてみた

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

ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
ユーザー登録ログイン
chihiro
jrits
信頼と魅力のある先進のITをもとに、お客様のワークスタイル・イノベーションの実現を目指します。

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
記事投稿イベント開催中
私が体験した1番ゾッとするインシデントの話
~
Claris FileMaker で作った App を JavaScript で拡張したらどうなる?!
~
92
どのような問題がありますか?
ユーザー登録して、Qiitaをもっと便利に使ってみませんか

この機能を利用するにはログインする必要があります。ログインするとさらに下記の機能が使えます。

  1. ユーザーやタグのフォロー機能であなたにマッチした記事をお届け
  2. ストック機能で便利な情報を後から効率的に読み返せる
ユーザー登録ログイン
ストックするカテゴリー