---
title: How to Load Data from a File in Next.js
description: Learn how to display and read the contents of a static json file in your Next.js application.
url: "https://vercel.com/kb/guide/loading-static-file-nextjs-api-route"
published: 2025-11-03
last_updated: 2025-11-10
authors: Lee Robinson
install_vercel_plugin: npx plugins add vercel/vercel-plugin
---

This guide will show how to read a JSON file inside a [Next.js application](https://vercel.com/docs/frameworks/nextjs) and display its data.

## Step 1. Import Required Libraries

First, we need to import the file system library from Node.js, which we'll use to read our file.

```jsx
import { promises as fs } from 'fs';
```

## Step 2: Create a Server Component

In Next.js, create a new [Server Component](https://nextjs.org/docs/app/building-your-application/rendering/server-components), which is the default in the [App Router](https://nextjs.org/docs/app).

This component is rendered entirely on the server, which allows for securely fetching data such as JSON files or talking directly to your database.

```jsx
import { promises as fs } from 'fs';

export default async function Page() {
  //...
}
```

## Step 3: Read the File

Next, we'll read the file. In this case, we're reading a JSON file. We use the `readFile` function from the `fs` library. We also use the `process.cwd` function to get the current working directory, and append the relative path to our file.

```jsx
import { promises as fs } from 'fs';

export default async function Page() {
  const file = await fs.readFile(process.cwd() + '/app/data.json', 'utf8');
  //...
}
```

The `'utf8'` argument tells Node to interpret the file as a UTF-8 encoded text file. The example JSON file we're reading at `app/data.json` looks as follows:

```json
{
  "title": "My Title",
  "content": "Lorem Ipsum"
}
```

## Step 4: Use The JSON Data

Now, we'll parse the file's contents. The `readFile` function returns the contents as a string, so we use `JSON.parse` to turn it into an object. Finally, we use the data in our Server Component.

```jsx
import { promises as fs } from 'fs';

export default async function Page() {
  const file = await fs.readFile(process.cwd() + '/app/data.json', 'utf8');
  const data = JSON.parse(file);

  return (
    <div>
      <h1>{data.title}</h1>
      <p>{data.content}</p>
    </div>
  );
}
```

Now, whenever you visit this page, Next.js will load the data from the file, and display it on the page.

## App Router and Colocation

The Next.js App Router supports [colocation](https://nextjs.org/docs/app/building-your-application/routing/colocation) of your project files. This means you can safely organize your project files inside route segments in the App Router without accidentally making them routable. Even though route structure is defined through folders, a route is not publicly accessible until a `page.js` or `route.js` file is added to a route segment.

## Related Documentation

- [Next.js](/docs/frameworks/full-stack/nextjs)

## More Next.js guides

- [Build an AI Chat Agent with Weather API Tool Calling](/kb/guide/build-ai-agent-weather-api): Build an intelligent conversational agent that fetches real-time weather data using the AI SDK, tool calling, and a backend weather API powered by Express, FastAPI or Nitro
- [Human-in-the-Loop with Chat SDK and Workflow SDK](/kb/guide/human-in-the-loop-with-chat-sdk-and-workflow-sdk): Combine Chat SDK and Workflow SDK to suspend workflows on approval cards in a chat platform, then resume on click via createWebhook.
- [Build with Vercel Blob on Next.js](/kb/guide/vercel-blob-nextjs): Deploy the Vercel Blob Next.js Starter and learn how client uploads store images securely in a private Blob store.

## Reference Architecture

Choose a stack and work through the decisions behind it, with curated documentation, guides, templates, and courses to help you build.

- [Agent stack](/kb/architecture/agents): Build and operate agents with models, tools, and durable workflows.
- [Web applications](/kb/architecture/web): Choose rendering, data, authentication, and caching approaches.
- [Backends](/kb/architecture/backends): Choose a runtime, connect services, and run background work.

[Browse all stacks](/kb/architecture)

## Build with prompts

Build an app, extend an agent, or improve your project with ready-to-use prompts for your coding agent.

[Browse the prompt library](/kb/prompts) · [Read the Markdown index](/kb/prompts.md)
