Working with JSON in JavaScript: Parsing and Data Serialization

Online Python Trainer for Beginners

Learn Python easily without overwhelming theory. Solve practical tasks with automatic checking, get hints in Russian, and write code directly in your browser — no installation required.

Start Course

Introduction to JSON and its role in modern JavaScript



JSON (JavaScript Object Notation) is a lightweight data interchange format that has become the de facto standard for transmitting information between client and server. Despite containing "JavaScript" in its name, JSON is a language-independent format, but its syntax is very close to JavaScript object syntax. In the Node.js environment, working with JSON is a daily task for any backend developer: from reading configuration files to processing API requests.



In this article, we will thoroughly examine two key methods for working with JSON in JavaScript: JSON.parse() for parsing (converting a string to an object) and JSON.stringify() for serialization (converting an object to a string). You will learn not only the basics but also advanced techniques that will help you write more reliable and performant code in Node.js.



JSON.parse(): Converting a string to a JavaScript object



The JSON.parse() method takes a JSON-formatted string and returns the corresponding JavaScript object. This is the primary operation when receiving data from an API or reading JSON files.



Basic syntax and simple example



The method syntax is extremely simple:



JSON.parse(text[, reviver])


Where text is the JSON string, and the optional reviver parameter is a function that can transform values before returning.



Let's look at a basic example:



const jsonString = '{"name": "Node.js", "version": 18, "features": ["async", "await"]}';const parsedObject = JSON.parse(jsonString);

console.log(parsedObject.name); // "Node.js"console.log(parsedObject.version); // 18console.log(parsedObject.features); // ["async", "await"]


Error handling during parsing



One of the most common errors is attempting to parse invalid JSON. In Node.js, this will throw a SyntaxError exception. Always use a try...catch block for safe parsing:



const invalidJson = '{"name": "Node.js", version: 18}'; // Error: key version without quotes

try { const data = JSON.parse(invalidJson); console.log(data);} catch (error) { if (error instanceof SyntaxError) { console.error('JSON parsing error:', error.message); // Output: JSON parsing error: Expected property name in JSON at position 27 }}


Using the reviver parameter for data transformation



The reviver parameter allows you to modify values during parsing. This is especially useful for converting string dates into Date objects:



const jsonWithDate = '{"event": "Conference", "date": "2024-12-15T10:00:00Z"}';

const result = JSON.parse(jsonWithDate, (key, value) => { if (key === 'date') { return new Date(value); } return value;});

console.log(result.date instanceof Date); // trueconsole.log(result.date.toLocaleDateString('ru-RU')); // 15.12.2024


JSON.stringify(): Converting an object to a JSON string



The JSON.stringify() method performs the reverse operation — it converts a JavaScript object into a JSON string. This is necessary when sending data to a server or saving state to a file.



Syntax and basic examples



The full method syntax includes three parameters:



JSON.stringify(value[, replacer[, space]])


  • value — the object to serialize (required)
  • replacer — a function or array for filtering properties (optional)
  • space — the number of spaces for formatting (optional)


A simple serialization example:



const user = {    id: 101,    name: "Alexey",                

Blogs

Book Recommendations