REW

How To Generate A JSON File?

Published Aug 29, 2025 5 min read
On this page

Generating a JSON file is a common task in software development, data handling, and configuration management. The method you use depends on your specific needs, such as whether you want to create a file manually, programmatically from existing data, or as a conversion from another format.

This article covers the most effective and widely used methods for generating JSON files, complete with practical examples.

Method 1: Manually writing a JSON file

For small, static, or one-off data, you can simply write a JSON file by hand using a text editor. Most modern code editors like VS Code or Notepad++ offer syntax highlighting for JSON, which can help prevent errors.

Steps

  1. Open a new file in your text editor.
  2. Follow the JSON syntax rules. A JSON file can contain a single object {} or an array of objects [] at the top level.
  3. Save the file with a .json extension.

Example: A JSON object

{
  "firstName": "John",
  "lastName": "Doe",
  "isStudent": false,
  "age": 30,
  "address": {
    "streetAddress": "123 Market St",
    "city": "Anytown",
    "postalCode": "12345"
  },
  "phoneNumbers": [
    {
      "type": "home",
      "number": "555-123-4567"
    },
    {
      "type": "work",
      "number": "555-987-6543"
    }
  ]
}

Use code with caution.

Method 2: Generating a JSON file with Python

Python's built-in json module makes it one of the easiest languages for handling JSON data. You can create a Python dictionary and then serialize it directly to a JSON file.

Steps

  1. Import the json module.
  2. Create your data as a Python dictionary or list.
  3. Open a file in write mode ('w').
  4. Use json.dump() to write the Python object to the file.

Code example

import json
# Your Python data represented as a dictionary
data = {
    "bookTitle": "The Hitchhiker's Guide to the Galaxy",
    "author": "Douglas Adams",
    "publicationYear": 1979,
    "isAvailable": True,
    "genres": ["science fiction", "comedy"],
    "details": {
        "pageCount": 224,
        "isbn": "978-0345391803"
    }
}
# Write the data to a JSON file
with open("book_data.json", "w", encoding="utf-8") as file:
    json.dump(data, file, indent=4) # `indent=4` for pretty-printing
print("book_data.json has been created.")

Use code with caution.

Method 3: Generating a JSON file with JavaScript (Node.js)

For server-side JavaScript applications, Node.js provides a simple way to create and write to files using its fs (File System) module.

Steps

  1. Require the fs module.
  2. Define your data as a JavaScript object.
  3. Use JSON.stringify() to convert the object into a JSON string.
  4. Use fs.writeFile() to write the JSON string to a new file.

Code example

const fs = require('fs');
// Your JavaScript data
const userData = {
    "id": "u123",
    "username": "coder_js",
    "email": "[email protected]",
    "joined": "2024-08-29",
    "posts": [
        {"postId": "p001", "title": "Intro to Node.js"},
        {"postId": "p002", "title": "Building REST APIs"}
    ]
};
// Convert the object to a JSON string with 2-space indentation
const jsonString = JSON.stringify(userData, null, 2);
// Write the JSON string to a file
fs.writeFile("user_data.json", jsonString, (err) => {
    if (err) {
        console.error('Error writing file:', err);
    } else {
        console.log('user_data.json has been created successfully!');
    }
});

Use code with caution.

Method 4: Generating JSON from a CSV file

Converting tabular data from a CSV (Comma-Separated Values) file to a structured JSON format is a common task. Many tools and libraries can automate this process, or you can write a script to handle it.

Method A: Using an online toolOnline tools like retool.com/utilities provide a quick and simple way to convert CSV to JSON by uploading your file.

Method B: Using a Python scriptA script is ideal for automation and repeat conversions.

Code example (Python)

import csv
import json
def csv_to_json(csv_filepath, json_filepath):
    """Converts a CSV file to a JSON file."""
    data = []
    with open(csv_filepath, 'r', encoding='utf-8') as file:
        csv_reader = csv.DictReader(file)
        for row in csv_reader:
            data.append(row)
    with open(json_filepath, 'w', encoding='utf-8') as file:
        json.dump(data, file, indent=4)
# Usage
csv_to_json("products.csv", "products.json")
print("Conversion complete.")

Use code with caution.

Sample products.csv

id,name,category,price
1,Laptop,Electronics,1200
2,Mouse,Accessories,25
3,Keyboard,Accessories,75

Use code with caution.

Output products.json

[
    {
        "id": "1",
        "name": "Laptop",
        "category": "Electronics",
        "price": "1200"
    },
    {
        "id": "2",
        "name": "Mouse",
        "category": "Accessories",
        "price": "25"
    },
    {
        "id": "3",
        "name": "Keyboard",
        "category": "Accessories",
        "price": "75"
    }
]

Use code with caution.

Method 5: Generating JSON from a database

For data stored in a relational database, many modern database systems and programming frameworks offer built-in functionality to export query results directly into JSON.

A: Using SQL Server's FOR JSON clauseSQL Server supports a FOR JSON clause, which formats query results as JSON text.

SQL query example

SELECT
    id,
    firstName AS "info.name",
    lastName AS "info.surname",
    age,
    dateOfBirth AS dob
FROM
    People
FOR JSON PATH;

Use code with caution.

This query would return a JSON string where info is a nested object.

B: Using Python with a databaseYou can also use a programming language to query the database and serialize the results.

Code example (Python with SQLite)

import sqlite3
import json
# Connect to the database
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
# Execute query and fetch results
cursor.execute("SELECT id, name, email FROM users;")
rows = cursor.fetchall()
columns = [col[0] for col in cursor.description]
# Convert query results to a list of dictionaries
user_data = [dict(zip(columns, row)) for row in rows]
# Write to JSON file
with open('users.json', 'w') as file:
    json.dump(user_data, file, indent=4)
conn.close()
print("users.json generated from database.")

Use code with caution.

JSON generation best practices

To ensure your JSON files are robust, readable, and maintainable, follow these best practices:

  • Use double quotes for keys: Keys must always be strings enclosed in double quotes. Single quotes are not valid JSON syntax.
  • Use consistent naming conventions: Stick to a single case style, like camelCase or snake_case, for all your keys. This improves consistency and readability.
  • Avoid hyphens in keys: Some programming languages or parsers can interpret hyphens as subtraction operators. Use underscores (_) or camelCase instead.
  • Add a root element: For larger or more complex data sets, wrapping the content in a root object or array provides better structure and is often required for valid JSON.
  • Use indentation for readability: Indenting the output (as shown in the Python and JavaScript examples) makes the file much easier for humans to read and debug.
  • Consider JSON Schema for validation: For projects where data consistency is critical, define a schema to validate the structure of your JSON files.
  • Handle errors gracefully: When programmatically generating JSON, always include error handling for issues like file permissions or invalid data.
Enjoyed this article? Share it with a friend.