Deep Analysis of Object Serialization to JSON in JavaScript

Nov 23, 2025 · Programming · 8 views · 7.8

Keywords: JavaScript | JSON Serialization | Object Conversion

Abstract: This article provides an in-depth exploration of the JSON.stringify method in JavaScript, covering core principles and practical applications. Through analysis of serialization mechanisms, parameter configuration, and edge case handling, it details the serialization process for basic objects, arrays, and primitive values. The article includes advanced techniques such as custom serialization functions and circular reference management, with code examples demonstrating output format control, special data type processing, and performance optimization best practices for real-world projects.

Fundamental Concepts of JSON Serialization

In modern web development, JSON (JavaScript Object Notation) has become the de facto standard for data exchange. JavaScript's built-in JSON.stringify method provides the core functionality for converting JavaScript objects into JSON strings. This method follows strict serialization rules to ensure reliable data transmission across different systems.

Basic Serialization Examples

Consider the following JavaScript object definition:

const sampleObject = {
    greeting: "world",
    "complex array": [42, 69, 420, 1337, null, true]
};
const primitiveValue = false;

Applying JSON.stringify for serialization:

console.log(JSON.stringify(sampleObject));
// Output: "{\"greeting\":\"world\",\"complex array\":[42,69,420,1337,null,true]}"

console.log(JSON.stringify(primitiveValue));
// Output: "false"

In-depth Analysis of Serialization Mechanism

The JSON.stringify method employs a recursive traversal strategy to process input objects. For object properties, the method checks enumerability and ignores Symbol keys. Array elements are processed in index order to maintain structural integrity in JSON arrays.

Primitive value serialization follows JSON specifications: strings are wrapped in double quotes, numbers and booleans are directly converted, and null values remain unchanged. Special numerical values like Infinity and NaN are converted to null, while undefined and functions are completely omitted during serialization.

Advanced Configuration Parameters

JSON.stringify supports two optional parameters for enhanced serialization control:

const user = {
    name: "Alice",
    age: 30,
    password: "secret",
    lastLogin: new Date()
};

// Using replacer function to filter sensitive data
const filteredJSON = JSON.stringify(user, (key, value) => {
    if (key === "password") return undefined;
    if (value instanceof Date) return value.toISOString();
    return value;
});

// Using space parameter for pretty printing
const prettyJSON = JSON.stringify(user, null, 2);

Edge Case Handling

Circular references present common challenges in serialization:

const objA = { name: "A" };
const objB = { name: "B", ref: objA };
objA.ref = objB; // Create circular reference

try {
    JSON.stringify(objA);
} catch (error) {
    console.error("Circular reference error:", error.message);
}

Solutions include using custom replacer functions or third-party libraries like circular-json to handle such scenarios.

Performance Optimization Practices

Performance considerations are crucial for large-scale data serialization:

Practical Application Scenarios

In frontend-backend data interaction, proper serialization strategies ensure data integrity:

// API request data preparation
const apiData = {
    user: { id: 123, preferences: { theme: "dark" } },
    timestamp: Date.now()
};

const requestBody = JSON.stringify(apiData);
// Send to server...

Local storage scenarios also benefit from serialization:

// localStorage data persistence
const appState = {
    session: { user: "john_doe", tokens: ["abc123"] },
    settings: { language: "en-US", notifications: true }
};

localStorage.setItem("appState", JSON.stringify(appState));

Copyright Notice: All rights in this article are reserved by the operators of DevGex. Reasonable sharing and citation are welcome; any reproduction, excerpting, or re-publication without prior permission is prohibited.