The JSON.stringify() method converts a JavaScript value, such as an object or array, into a JSON string. It is commonly used to serialize data for API requests, browser storage, and data exchange between applications.
Syntax:
JSON.stringify(value, replacer, space);Parameters:
- value: The JavaScript value to convert into a JSON string.
- replacer (optional): A function that transforms values or an array of property names to include in the output.
- space (optional): A number or string used to format the output with indentation. Numeric values specify the indentation size, up to 10 spaces, while strings use up to 10 characters.
Return Value: Returns a JSON string for serializable values. If the top-level value cannot be serialized, such as undefined or a function, it returns undefined.
Examples of JavaScript JSON stringify()
1. Converting a JavaScript Object to a JSON String
The following example converts a JavaScript object into a JSON string using JSON.stringify().
const value = {
Company: "GeeksforGeeks",
Estd: 2009,
location: "Noida"
};
const result = JSON.stringify(value);
console.log("Value of result = " + result);
The method serializes the object's properties into a JSON string. Property names and string values are enclosed in double quotes.
2. Deep Copying an Object Using JSON.stringify() and JSON.parse()
Combining JSON.stringify() and JSON.parse() can create a deep copy of an object when its data consists of JSON-compatible values. The copied object has separate nested objects, so modifying them does not affect the original.
const obj = {
name: "GFG",
add: {
country: "India",
state: {
code: "JS",
topic: "stringify"
}
}
};
const obj2 = JSON.parse(JSON.stringify(obj));
obj2.add.state.topic = "stringify json object";
console.log(obj.add.state.topic);
console.log(obj2.add.state.topic);
Modifying obj2 does not affect obj. However, this method may not preserve all JavaScript values, so use structuredClone() for more general deep copying when supported.
3. Converting an Array to a JSON String
The JSON.stringify() method can also convert a JavaScript array into a JSON string.
const value = ["Logan", 21, "Peter", 24];
const result = JSON.stringify(value);
console.log("Value of result = " + result);
console.log("Type of result = " + typeof result);
The array is serialized into JSON text, and typeof result returns "string" because JSON.stringify() produces a string rather than another JavaScript array.
4. Formatting JSON Output Using the space Parameter
The space parameter makes JSON output easier to read by adding indentation and line breaks.
const person = {
name: "Ryan",
age: 25,
city: "Delhi"
};
console.log(JSON.stringify(person, null, 2));
Here, null means no replacer is used, and 2 specifies two spaces of indentation.
5. Selecting Properties Using the replacer Parameter
The replacer parameter can be an array of property names to include in the resulting JSON string.
const person = {
name: "Ryan",
age: 25,
city: "Delhi"
};
const result = JSON.stringify(person, ["name", "city"], 2);
console.log(result);
Only the specified properties are included in the serialized object. This is useful when you need to produce JSON containing selected fields.