res.json sends data as JSON from a server to a client. It helps share information in a simple, readable way.
res.json for JSON responses in Express
Introduction
Syntax
Express
res.json(data)
data can be any JavaScript object or array.
This method automatically sets the response header Content-Type to application/json.
Examples
Express
res.json({ message: 'Hello, world!' })Express
res.json([1, 2, 3])
Express
res.json({ success: true, data: { id: 5, name: 'Alice' } })Sample Program
This Express server listens on port 3000. When you visit /greet, it sends a JSON response with a greeting message.
Express
import express from 'express'; const app = express(); app.get('/greet', (req, res) => { res.json({ greeting: 'Hello from Express!' }); }); app.listen(3000, () => { console.log('Server running on http://localhost:3000'); });
Important Notes
res.json converts your JavaScript object to a JSON string automatically.
It also ends the response, so you don't need to call res.end() after.
Use res.json to make your API responses easy to read and use by other programs.
Summary
res.json sends JSON data from server to client.
It sets the right headers and formats data automatically.
Use it to share data clearly in APIs or web apps.
Practice
1. What does
res.json() do in an Express app?easy
Solution
Step 1: Understand the purpose of
This method is used to send JSON data back to the client in an HTTP response.res.json()Step 2: Recognize header setting and formatting
It automatically sets the Content-Type header to 'application/json' and converts the JavaScript object to JSON format.Final Answer:
Sends a JSON response to the client with proper headers -> Option CQuick Check:
res.json() sends JSON response [OK]
Hint: Remember: res.json sends data, not reads it [OK]
Common Mistakes:
- Confusing res.json with reading client data
- Thinking it logs data instead of sending
- Assuming it parses files automatically
2. Which of the following is the correct syntax to send a JSON response with Express?
easy
Solution
Step 1: Identify the correct method name
The Express method to send JSON isres.json(), notres.sendJson()orres.jsonify().Step 2: Check the argument format
The argument should be a JavaScript object, like{ message: 'Hello' }.Final Answer:
res.json({ message: 'Hello' }) -> Option AQuick Check:
Correct method is res.json() [OK]
Hint: Use res.json() exactly, no extra letters [OK]
Common Mistakes:
- Using res.sendJson or res.jsonify which don't exist
- Passing string instead of object
- Mixing res.send with JSON method
3. What will the client receive when this Express route runs?
app.get('/data', (req, res) => {
res.json({ success: true, count: 5 });
});medium
Solution
Step 1: Understand what res.json sends
It converts the JavaScript object into a JSON string with keys and values properly quoted.Step 2: Check the exact JSON format
The object { success: true, count: 5 } becomes the JSON string '{"success":true,"count":5}'.Final Answer:
{"success":true,"count":5} -> Option DQuick Check:
res.json sends JSON string [OK]
Hint: res.json sends JSON string with quotes around keys [OK]
Common Mistakes:
- Thinking it sends array format
- Assuming it sends plain text without quotes
- Believing res.json requires string input
4. Identify the error in this Express code snippet:
app.get('/info', (req, res) => {
res.json = { name: 'Alice' };
});medium
Solution
Step 1: Check how res.json is used
The code assigns an object to res.json instead of calling it as a function.Step 2: Understand correct usage
res.json is a method and should be called like res.json({ name: 'Alice' });Final Answer:
res.json is assigned an object instead of called as a function -> Option BQuick Check:
res.json must be called, not assigned [OK]
Hint: res.json is a function, always call it with () [OK]
Common Mistakes:
- Assigning to res.json instead of calling it
- Forgetting parentheses after res.json
- Thinking res.json only accepts strings
5. You want to send a JSON response with a list of users but only include users with active status true. Which code correctly uses
res.json to do this?const users = [
{ id: 1, active: true },
{ id: 2, active: false },
{ id: 3, active: true }
];
app.get('/active-users', (req, res) => {
// Fill in here
});hard
Solution
Step 1: Filter users by active status
Useusers.filter(user => user.active)to get only users where active is true.Step 2: Send filtered list as JSON response
Pass the filtered array tores.json()to send it properly formatted.Final Answer:
res.json(users.filter(user => user.active)); -> Option AQuick Check:
Filter active users, then send JSON [OK]
Hint: Filter first, then send with res.json() [OK]
Common Mistakes:
- Using map instead of filter, sending booleans only
- Sending full users list without filtering
- Filtering by id instead of active status
Recommended
Ready to prove it?
Pass the test and this pattern moves unknown
10 questions ~5 mineasy hard
