What is MIME type "application/json"?
A MIME type is a string that tells browsers and other tools how to handle a particular kind of file.
The MIME type application/json defines content formatted as JavaScript Object Notation. This is a text-based format that uses key–value pairs and arrays for data structuring.JSON is used for lightweight data exchange. Its design makes it fast to parse and easy to read. Systems send and receive JSON in web APIs and between different programs.
- Data Exchange: It is the standard format for transferring information over networks.
- Configuration Storage: Many applications save settings and internal data using this structured text format.
- File Storage: Besides plain JSON files, specialized files use this format. Examples include interactive notebooks like IPYNB, geospatial data files like GEOJSON, and web application manifests like WEBMANIFEST.
Associated file extensions
.json, .yaml, .har, .ipynb, .spm, .pat, .mup, .gltf, .geojson, .ice, .epj, .mcmeta, .webapp, .mxt, .avsc, .yyp, .jsonl, .webmanifest, .yy, .b3dm, .4dform, .4dproject, .cmpt, .cryproject, .i3dm, .jq, .json-tmlanguage, .json.example, .json5, .jsonld, .maxhelp, .maxpat, .maxproj, .pnts, .sarif, .tact, .tfstate, .tfstate.backup, .topojson
Usage Examples
HTTP Header
When serving content with this MIME type, set the Content-Type header:
Content-Type: application/json
HTML
In HTML, you can specify the MIME type in various elements:
<a href="file.dat" type="application/json">Download file</a>
Server-side (Node.js)
Setting the Content-Type header in Node.js:
const http = require('http');
http.createServer((req, res) => {
res.setHeader('Content-Type', 'application/json');
res.end('Content here');
}).listen(3000);
Associated file extensions
.json, .yaml, .har, .ipynb, .spm, .pat, .mup, .gltf, .geojson, .ice, .epj, .mcmeta, .webapp, .mxt, .avsc, .yyp, .jsonl, .webmanifest, .yy, .b3dm, .4dform, .4dproject, .cmpt, .cryproject, .i3dm, .jq, .json-tmlanguage, .json.example, .json5, .jsonld, .maxhelp, .maxpat, .maxproj, .pnts, .sarif, .tact, .tfstate, .tfstate.backup, .topojson
FAQs
What is the correct MIME type for JSON files?
The only official standard MIME type for JSON text is application/json. While legacy types like text/json or application/x-javascript exist, they are obsolete and should not be used for modern web APIs or data exchange.
How do I configure Apache to serve JSON correctly?
You can ensure proper headers by adding AddType application/json .json to your .htaccess file or server config. This instructs Apache to serve files with the .json extension using the application/json content type.
Why does my browser download JSON instead of displaying it?
This usually happens if the server sends a Content-Disposition: attachment header or if the browser lacks a built-in JSON viewer. Modern browsers like Chrome and Firefox natively render application/json as text or a structured tree unless forced to download.
Does application/json support comments?
No, the standard application/json format does not allow comments. If you include comments (like // or /* */), standard parsers will fail; for configuration files requiring comments, consider using JSON5 or YAML.
What is the security risk of using text/html for JSON data?
Serving JSON as text/html can lead to Cross-Site Scripting (XSS) vulnerabilities. If a browser interprets the data as HTML, malicious scripts embedded in the JSON string could be executed. Always use application/json to prevent MIME-sniffing attacks.
How do I set the JSON content type in PHP?
You must set the header before outputting any content. Use the code header('Content-Type: application/json; charset=utf-8'); followed by echo json_encode($data); to ensure the client treats the response as a JSON object.
Should I use application/json for Web App Manifests?
While .webmanifest files are valid JSON, the specific MIME type application/manifest+json is often recommended by specifications. However, most browsers will accept application/json for manifests without issues.
What encoding should be used with application/json?
JSON text should be encoded in Unicode, with UTF-8 being the default and most widely supported encoding. It is rarely necessary to specify the charset parameter explicitly in the header, as UTF-8 is the standard assumption for application/json.
General FAQ
What is a MIME type?
A MIME (Multipurpose Internet Mail Extensions) type is a standard that indicates the nature and format of a document, file, or assortment of bytes. MIME types are defined and standardized in IETF's RFC 6838.
MIME types are important because they help browsers and servers understand how to process a file. When a browser receives a file from a server, it uses the MIME type to determine how to display or handle the content, whether it's an image to display, a PDF to open in a viewer, or a video to play.
MIME types consist of a type and a subtype, separated by a slash (e.g., text/html, image/jpeg, application/pdf). Some MIME types also include optional parameters.
How do I find the MIME type for a file?
You can check the file extension or use a file identification tool such as file --mime-type on the command line. Many programming languages also provide libraries to detect MIME types.
Why are multiple MIME types listed for one extension?
Different applications and historical conventions may use alternative MIME identifiers for the same kind of file. Showing them all helps ensure compatibility across systems.