w3resource

Working with JSON in Node.js: A Beginner-Friendly Guide


Node.js and JSON: A Complete Guide

In Node.js, JSON (JavaScript Object Notation) is a lightweight data-interchange format that is easy to parse and generate. It is commonly used for configuration files, data exchange between a client and server, and as a storage mechanism for application data. Node.js offers built-in support for working with JSON, enabling developers to efficiently manage structured data.


Syntax:

1. Parsing JSON

JSON.parse(jsonString);

2. Converting an Object to JSON

JSON.stringify(object);

Examples and Code

1. Reading a JSON File

Code:

// Import the built-in fs module
const fs = require('fs');

// Read the JSON file synchronously
const data = fs.readFileSync('data.json', 'utf-8');

// Parse the JSON string into an object
const jsonData = JSON.parse(data);

console.log(jsonData); // Output the JSON data

Explanation:

  • fs: Node.js module for file system operations.
  • fs.readFileSync: Reads the file content as a string.
  • JSON.parse: Converts the string into a JavaScript object.

2. Writing to a JSON File

Code:

// Import the fs module
const fs = require('fs');

// Define a JavaScript object
const newData = { name: "John Doe", age: 30 };

// Convert the object to a JSON string
const jsonString = JSON.stringify(newData, null, 2);

// Write the JSON string to a file
fs.writeFileSync('output.json', jsonString, 'utf-8');

console.log('File written successfully!');

Explanation:

  • JSON.stringify: Converts the JavaScript object to a JSON-formatted string.
  • null, 2: Formats the output with indentation for better readability.
  • fs.writeFileSync: Writes the string to a file.

3. Fetching JSON from an API

Code:

// Import the built-in https module
const https = require('https');

// Make a GET request to a JSON API
https.get('https://jsonplaceholder.typicode.com/todos/1', (res) => {
    let data = '';

    // Collect chunks of data
    res.on('data', (chunk) => {
        data += chunk;
    });

    // Parse JSON once all data is received
    res.on('end', () => {
        const todo = JSON.parse(data);
        console.log(todo);
    });
}).on('error', (err) => {
    console.error('Error fetching data:', err);
});

Explanation:

  • https.get: Sends an HTTP GET request.
  • res.on('data'): Collects incoming data in chunks.
  • JSON.parse: Converts the received JSON string into a JavaScript object.

4. Using JSON as Configuration

Code:

// Import a configuration JSON file
const config = require('./config.json');

// Access properties from the JSON object
console.log('Database Host: ${config.database.host}');
console.log('Port: ${config.database.port}');

Explanation:

  • require('./config.json'): Directly imports and parses the JSON file as a JavaScript object.

Additional Information

  • JSON.parse: Converts a JSON string into a JavaScript object. Useful when working with APIs or file data.
  • JSON.stringify: Converts a JavaScript object into a JSON string. Essential for saving data into files or sending it via an API.
  • Error Handling: Always wrap JSON.parse and JSON.stringify in a try-catch block to handle malformed JSON gracefully.
  • Use Cases:
    • Storing app configuration (e.g., config.json).
    • Exchanging data between a server and client.
    • Maintaining a simple database structure for small-scale projects.

Practical Guides to Node.js Snippets and Examples.



Follow us on Facebook and Twitter for latest update.