Skip to Content

How to Parse & Stringify JSON Objects in JavaScript

JSON (JavaScript Object Notation) is a lightweight interchange format for storing and transporting structured data based primarily on a set of key/value pairs. It's essential for web developers to communicate and pass data back and forth between systems.

There are two functions I use almost every day when writing JavaScript code.  The JSON.parse() method which takes a JSON string and converts it into a JavaScript object. And the JSON.stringify() method which in turn converts that JSON object back into a string.

This article will provide a detailed guide on how to parse and stringify JSON objects in JavaScript.

Parsing JSON in JavaScript

The JSON.parse() method in JavaScript is used to parse a JSON string and convert it into an object. Here's a basic example:

const my_string = '{"name": "Josh", "age": 30, "about": "I love coding!"}';const my_obj = JSON.parse(response);

console.log(my_obj);

The resulting output is an object:

{
"name": "Josh",
"age": 30,
"about": "I love coding!"
}

Now, you can access each key/value pair as needed:

console.log(my_obj.name);
console.log(my_obj.age);
console.log(my_obj.about);

// Josh
// 30
// I love coding!

Stringifying JSON in JavaScript

The JSON.stringify() method is used to convert an object into a JSON string. Here's an example:

const person = {
name: "Josh",
age: 30,
about: "I love coding!"
};

const my_string = JSON.stringify(my_obj);

console.log(my_string);
// "{"name":"Josh","age":30,"about":"I love coding!"}"

This is very useful if you need to pass a raw JSON string in the request body to a remote server versus form data.

Practical Examples

Fetch API and JSON

When working with APIs, it's common to use the Fetch API to retrieve JSON data and parse it:

fetch(url)
.then(response => response.json())
.then(data => {
console.log("Parsed JSON data:", data);
})
.catch(error => {
console.error("Error fetching or parsing data:", error);
}
);

LocalStorage and JSON

Storing and retrieving complex data with Local Storage in JavaScript often involves stringifying and parsing JSON. This is only an example. Be mindful of the data you store in your browser for security purposes.

Here is a quick example for storing data:

const user = {"name": "Josh", age: 30};
localStorage.setItem("user", JSON.stringify(user));

And an example for retrieving that data:

const user_data = JSON.parse(localStorage.getItem("user"));
console.log("Retrieved user:", user_data);

Handling Errors

Parsing JSON may fail if the input is not valid. It's important to handle errors gracefully:

const invalid_json = "This is not a valid JSON string";

try {
const my_object = JSON.parse(invalid_json);
console.log(my_object);
}
catch (error) {
console.error("Error parsing JSON:", error.message);
}

Other Useful Tidbits

Although these JSON methods are primarily used on objects and key/value pairs, they can also handle arrays:

var my_array = ["bacon", "eggs", "toast"];
var my_string = JSON.stringify(my_array);

console.log(my_string);
// "["bacon", "eggs", "toast"]"

console.log(JSON.parse(my_string));
// ["bacon", "eggs", "toast"]

The JSON.stringify() method also comes with a third space attribute, useful for making console.log() outputs more legible. Here's a quick example of how that could work:

var my_obj = {
name: "Josh",
age: 30,
about: "I love coding!"
};

var my_str = JSON.stringify(my_obj, null, 4);

console.log(my_str);

A value of 4 for the space attribute instructs the browser to log the output with four spaces before each key/value pair.

{
"name": "Josh",
"age": 30,
"about": "I love coding!"
}

Conclusion

Understanding how to parse and stringify JSON objects in JavaScript is crucial for working with data in web development. The JSON.parse() and JSON.stringify() methods provide a straightforward way to handle JSON data, whether it's retrieved from an API, stored locally, or exchanged between different parts of a web application. By mastering these techniques, developers can effectively work with JSON data and build robust and dynamic web applications.

Last Updated: December 02, 2023
Created: March 28, 2020

Comments

There are no comments yet. Start the conversation!

Add A Comment

Comment Etiquette: Wrap code in a <code> and </code>. Please keep comments on-topic, do not post spam, keep the conversation constructive, and be nice to each other.