Working with JSON in JavaScript: Parsing and Serialization of Data

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 JavaScript



JSON (JavaScript Object Notation) is a lightweight data interchange format based on JavaScript object syntax. Despite its origins, JSON has become a universal standard for transmitting structured data between server and client, as well as for storing configurations and exchanging information in microservice architectures.



In the Node.js environment, working with JSON is a daily task: from reading configuration files to processing REST API responses. In this article, we will take a detailed look at two key methods — JSON.parse() and JSON.stringify(), and also analyze typical errors and best practices.



1. Parsing JSON: The JSON.parse() Method



The JSON.parse() method converts a JSON-formatted string into a JavaScript object. This is necessary when you receive data from a server, from a file, or from an external source.



Basic Syntax



const jsonString = '{"name": "Anna", "age": 30, "isStudent": false}';const user = JSON.parse(jsonString);console.log(user.name); // "Anna"console.log(user.age);  // 30


Advanced Usage: The Reviver Function



The second argument of JSON.parse() can accept a reviver function, which allows you to modify values during parsing. This is useful for converting string dates into Date objects or for data validation.



const jsonData = '{"date": "2024-01-15T10:30:00.000Z", "value": 42}';const parsed = JSON.parse(jsonData, (key, value) => {  if (key === 'date') {    return new Date(value);  }  return value;});console.log(parsed.date instanceof Date); // trueconsole.log(parsed.date.toLocaleDateString()); // "1/15/2024"


Handling Parsing Errors



Invalid JSON will throw a SyntaxError. Always wrap the JSON.parse() call in a try...catch block:



function safeParse(jsonString) {  try {    return { data: JSON.parse(jsonString), error: null };  } catch (error) {    console.error('JSON parsing error:', error.message);    return { data: null, error: error.message };  }}

const result = safeParse('{"name": "Error"}');console.log(result.data.name); // "Error"


2. Serialization to JSON: The JSON.stringify() Method



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



Basic Syntax



const user = {  name: 'Ivan',  age: 25,  skills: ['JavaScript', 'Node.js']};

const jsonString = JSON.stringify(user);console.log(jsonString);// {"name":"Ivan","age":25,"skills":["JavaScript","Node.js"]}


Formatting Parameters



The third argument of JSON.stringify() allows you to set indentation for readable output. This is especially useful when writing to files or debugging.



const config = {  server: { port: 3000, host: 'localhost' },  database: { host: 'db.example.com', port: 5432 }};

// Compact outputconsole.log(JSON.stringify(config));

// Readable output with 2-space indentationconsole.log(JSON.stringify(config, null, 2));// {// "server": {// "port": 3000,// "host": "localhost"// },// ...// }


Filtering Properties with the Replacer



The second argument is an array or function that determines which properties to include in the resulting string.



const user = {  id: 1,  name: 'Maria',  email: 'maria@example.com',  password: 'secret123',  role: 'admin'};

// Excluding confidential dataconst safeUser = JSON.stringify(user, ['id', 'name', 'email', 'role']);console.log(safeUser);// {"id":1,"name":"Maria","email":"maria@exa

Blogs

Book Recommendations