【JavaScript】JSONの概要

【JavaScript】JSONの概要

JSONとは何か

JSON(JavaScript Object Notation)は、軽量なデータ交換フォーマットです。人間にも読みやすく、コンピュータでの解析や生成が容易であるため、広く使用されています。JSONは、特にWebアプリケーションにおいて、クライアントとサーバー間でデータをやり取りする際によく利用されます。

たとえば、次のようなシンプルなJSON形式のデータがあります:

{
    "name": "太郎",
    "age": 25,
    "skills": ["JavaScript", "Python", "HTML"]
}

JSONの基本構造

JSONは、キーと値のペアをカンマで区切る構造を持っています。キーは常にダブルクォートで囲まれた文字列で、値には次のいずれかを指定できます:

  • 文字列(ダブルクォートで囲む)
  • 数値(整数または浮動小数点数)
  • 真偽値(true または false
  • 配列
  • オブジェクト
  • null

例:

{
    "id": 101,
    "name": "花子",
    "isStudent": true,
    "grades": [85, 90, 88],
    "address": {
        "city": "東京",
        "postalCode": "100-0001"
    },
    "notes": null
}

JSON文字列をJavaScriptで解析する

JSON文字列をJavaScriptオブジェクトに変換するには、JSON.parse() メソッドを使用します。

例:

const jsonString = '{"name":"太郎","age":25}';
const obj = JSON.parse(jsonString);
console.log(obj.name); // 太郎
console.log(obj.age);  // 25

JSON.parse()は、文字列が正しいJSON形式でない場合にエラーをスローします。そのため、エラー処理を追加することが重要です。

例:

try {
    const invalidJson = '{"name": "太郎", age: 25}'; // 不正なJSON
    const obj = JSON.parse(invalidJson);
} catch (error) {
    console.error("JSONの解析中にエラーが発生しました:", error.message);
}

JavaScriptオブジェクトをJSONに変換する

JavaScriptオブジェクトをJSON形式の文字列に変換するには、JSON.stringify() メソッドを使用します。

例:

const obj = { name: "花子", age: 30, isStudent: false };
const jsonString = JSON.stringify(obj);
console.log(jsonString); // {"name":"花子","age":30,"isStudent":false}

また、引数を追加することでフォーマットを調整できます。たとえば、JSON文字列をインデント付きで生成する場合:

const formattedJson = JSON.stringify(obj, null, 4);
console.log(formattedJson);
// {
//     "name": "花子",
//     "age": 30,
//     "isStudent": false
// }

APIでのJSONの利用

JSONは、API通信においてデータフォーマットとして一般的に使用されます。JavaScriptでAPIを利用する場合、fetch() 関数を使用してJSONを処理する例を示します。

例:

fetch("https://api.example.com/data")
    .then(response => response.json())
    .then(data => {
        console.log(data);
    })
    .catch(error => {
        console.error("データの取得中にエラーが発生しました:", error);
    });

上記の例では、response.json() を使ってサーバーからのJSONデータをJavaScriptオブジェクトに変換しています。

JSON操作の注意点とコツ

JSONを操作する際には、以下の点に注意してください:

  • JSONではコメントがサポートされていないため、コメントを含める必要がある場合は別の方法を検討する。
  • データサイズが大きい場合、JSON.stringify()JSON.parse() は処理時間やメモリ消費量に影響を与える可能性がある。
  • 数値は精度に限界があるため、大きな数値や精密な計算が必要な場合は注意が必要。
  • セキュリティ面では、信頼できないJSONデータの解析を行う際に十分なバリデーションを行う。

また、JSONを効率的に操作するために、専用ライブラリ(たとえばajv)を利用してスキーマバリデーションを行うのも有効です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です