JavaScriptでJSONを生成する方法を現役エンジニアが解説【初心者向け】

初心者向けにJavaScriptでJSONを生成する方法について現役エンジニアが解説しています。JSONとはJavaScript Object Notationの略であり、テキストベースのフォーマットです。JSON形式にエンコードするにはJSON.stringify、デコードするにはJSON.parseを使います。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

JavaScriptでJSONを生成する方法について解説します。実際のコードをもとに解説していきますので、理解を深めていきましょう。

また、入門向けのJavaSriptを学習できるサイトも紹介しているので、合わせてご覧ください。

 

なお本記事は、オンラインブートキャンプ フロントエンドコース(JavaScript・jQuery講座)の内容をもとにしています。

 

 

田島悠介

今回は、JavaScriptに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

JavaScriptでJSONを生成する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

JSONデータとは

JSONとは、JavaScript Object Notationの略であり、テキストベースで軽量にデータ交換のできるフォーマットのことです。JavaScriptとありますが、多くのプログラミング言語やシステムで使われています。

{“key”: “value”} のように、項目名と値をダブルクォーテーション(“)で囲み、コロン(:)で対応づけ、中括弧({})で閉じたものが、よくあるJSON形式のデータです。

より詳細な情報は「JSON」で検索すると出てきますので、興味のある方は調べてみてください。

JavaScriptでJSONを生成する方法

JavaScriptでJSON形式のデータを生成するにはJSON.stringifyメソッドを使用します。JSON.stringifyメソッドに変換したいデータを入力することで、JSON形式のデータ(文字列に変換した結果)を取得することができます。

逆にJSON形式のデータをプログラムで扱えるように変換するには JSON.parseメソッドを使いますので、あわせて覚えておきましょう。

[PR] JavaScript・jQueryで挫折しない学習方法を動画で公開中

実際に書いてみよう

まずはシンプルなデータでJSON.stringifyとJSON.parseを試してみましょう。

JSON.stringifyでObject型からJSON形式のデータに変換されていること、JSON.parseでObject 型に再変換できていることが分かりますね。

let simpleData = {name: 'taro', age: 20};
// JSON 形式への変換
let simpleDataJSON = JSON.stringify(simpleData);
console.log(simpleDataJSON);
// => {"name":"taro","age":20}
// JSON 形式からの復元
let simpleDataParsed = JSON.parse(simpleDataJSON);
console.log(simpleDataParsed);
// => { name: 'taro', age: 20 }
console.log(simpleDataParsed.name);
// => taro
console.log(simpleDataParsed['age']);
// => 20

JSON形式のデータは配列や、ネストした構造を扱うこともできます。もう少し複雑なデータで見てみましょう。複雑なデータでも同様にJSON形式のデータとObject型のデータで相互に変換できていますね。

let complexData = {
  name: 'taro',
  age: 20,
  hobbies: ['tennis', 'game', 'soccer'],
  isMarried: true,
  partner: {
    name: 'kumi',
    age: 18,
    hobbies: ['piano', 'running'],
  }
};
// JSON 形式への変換
let complexDataJSON = JSON.stringify(complexData);
console.log(complexDataJSON);
// => {"name":"taro","age":20,"hobbies":["tennis","game","soccer"],"isMarried":true,"partner":{"name":"kumi","age":18,"hobbies":["piano","running"]}}
// JSON 形式からの復元
let complexDataParsed = JSON.parse(complexDataJSON);
console.log(complexDataParsed);
// => { name: 'taro',
// age: 20,
// hobbies: [ 'tennis', 'game', 'soccer' ],
// isMarried: true,
// partner: { name: 'kumi', age: 18, hobbies: [ 'piano', 'running' ] } }

 

筆者プロフィール

メンター稲員さん

フリーランスエンジニア。大手SEからフリーランスのWeb系エンジニアにジョブチェンジ。

経験言語:Ruby、Rails、Python、C/C++、Java、Perl、HTML/CSS3、JavaScript、CoffeeScript,Node.js。
おうち大好きマンです。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

また、TechAcademyではJavaScriptを使ってWebサービスを公開できるオンラインブートキャンプ フロントエンドコース(JavaScript・jQuery講座)を開催しています。

プログラミングの初心者でも受講可能です。Webサイトの表現の幅を広げたいという方はぜひご覧ください。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。