オブジェクトとJSONの違い


 

無茶似ています。キー名が””で囲まれるくらいの違い?

JSON.stringify(data)は、単にキー名を文字列にするだけでなく、オブジェクト全体をJSON形式の文字列に変換します。この変換にはいくつかのステップと特徴があります。以下に具体的に説明します。

変換前のオブジェクト

元のオブジェクトは以下のようなJavaScriptオブジェクトです:

const data = {
    name: "John Doe",
    email: "john.doe@example.com",
    message: "Hello, this is a test message."
};

JSON.stringify(data) の結果

このオブジェクトを JSON.stringify(data) で変換すると、以下のようなJSON形式の文字列になります:

const jsonData = JSON.stringify(data);
console.log(jsonData);

変換後の文字列

jsonData の内容は以下のようになります:

{"name":"John Doe","email":"john.doe@example.com","message":"Hello, this is a test message."}

具体的な違い

1. キーと値が文字列化される

JavaScriptオブジェクトのキーは文字列として扱われますが、JSON形式の文字列に変換する際に、キーも明示的にダブルクォートで囲まれます。また、値も同様に適切な形式で文字列化されます。

2. データ構造の変換

  • オブジェクト: {} で囲まれたキーと値のペア。
  • 文字列: 値が文字列の場合、ダブルクォートで囲まれます。
  • 数値: 値が数値の場合、そのまま数値として表現されます。
  • ブール値: truefalse がそのまま使用されます。
  • 配列: 配列の場合、[] で囲まれ、その中に各要素がカンマで区切られて入ります。
  • null: 値がnullの場合、そのままnullとして表現されます。

元のオブジェクト

const complexData = {
    name: "John Doe",
    age: 30,
    isAdmin: false,
    hobbies: ["reading", "traveling", "swimming"],
    address: {
        city: "New York",
        zip: "10001"
    },
    extra: null
};

JSON.stringify(complexData) の結果

{
    "name": "John Doe",
    "age": 30,
    "isAdmin": false,
    "hobbies": ["reading", "traveling", "swimming"],
    "address": {
        "city": "New York",
        "zip": "10001"
    },
    "extra": null
}

まとめ

  • JSON.stringify(data) は、オブジェクト全体をJSON形式の文字列に変換します。
  • キー名は文字列としてダブルクォートで囲まれ、値も適切な形式で文字列化されます。
  • この変換により、データはネットワーク通信やファイル保存に適した形式になります。

具体的な変換結果を見てわかるように、JSON.stringifyは単にキー名を文字列にするだけでなく、オブジェクト全体をJSONの標準形式に従ってシリアライズします。

オブジェクトをPOST送信する時は、bodyで送れるのは文字列のみであるから、
オブジェクトはそのままでは送れない。
だから、JSON文字列に変換が必要。

WEBプログム、WEBデザインなどの制作については、以下を御覧ください。

WEBプログム、WEBデザインなどの制作