diff --git a/doc/api/cli.md b/doc/api/cli.md
index 76c122fc16dd0b..02162de5c72b86 100644
--- a/doc/api/cli.md
+++ b/doc/api/cli.md
@@ -290,14 +290,6 @@ added:
 
 Enable experimental `import.meta.resolve()` support.
 
-### `--experimental-json-modules`
-
-<!-- YAML
-added: v12.9.0
--->
-
-Enable experimental JSON support for the ES Module loader.
-
 ### `--experimental-loader=module`
 
 <!-- YAML
@@ -1568,9 +1560,7 @@ Node.js options that are allowed are:
 * `--enable-source-maps`
 * `--experimental-abortcontroller`
 * `--experimental-import-meta-resolve`
-* `--experimental-json-modules`
 * `--experimental-loader`
-* `--experimental-modules`
 * `--experimental-policy`
 * `--experimental-specifier-resolution`
 * `--experimental-top-level-await`
diff --git a/doc/api/esm.md b/doc/api/esm.md
index ec1814ef3d567e..5d0c99ab34007d 100644
--- a/doc/api/esm.md
+++ b/doc/api/esm.md
@@ -477,22 +477,6 @@ These CommonJS variables are not available in ES modules.
 `__filename` and `__dirname` use cases can be replicated via
 [`import.meta.url`][].
 
-#### No JSON Module Loading
-
-JSON imports are still experimental and only supported via the
-`--experimental-json-modules` flag.
-
-Local JSON files can be loaded relative to `import.meta.url` with `fs` directly:
-
-<!-- eslint-skip -->
-
-```js
-import { readFile } from 'fs/promises';
-const json = JSON.parse(await readFile(new URL('./dat.json', import.meta.url)));
-```
-
-Alternatively `module.createRequire()` can be used.
-
 #### No Native Module Loading
 
 Native modules are not currently supported with ES module imports.
@@ -538,7 +522,7 @@ import packageConfig from './package.json' assert { type: 'json' };
 
 The `assert { type: 'json' }` syntax is mandatory; see [Import Assertions][].
 
-The imported JSON only exposes a `default`. There is no support for named
+The imported JSON only exposes a `default` export. There is no support for named
 exports. A cache entry is created in the CommonJS cache to avoid duplication.
 The same object is returned in CommonJS if the JSON module has already been
 imported from the same path.
diff --git a/test/es-module/test-esm-json.mjs b/test/es-module/test-esm-json.mjs
index e19762c6e61a71..6d55419eedc857 100644
--- a/test/es-module/test-esm-json.mjs
+++ b/test/es-module/test-esm-json.mjs
@@ -9,7 +9,6 @@ strictEqual(secret.ofLife, 42);
 
 // Test warning message
 const child = spawn(process.execPath, [
-  '--experimental-json-modules',
   path('/es-modules/json-modules.mjs'),
 ]);